How can I know where does an app locate its configuration files?
There are a few programs which can give you insight into file system usage while programs are running. 

There are a few good terminal ones like lsof, but I really like fseventer for its simple graphical interface and play/pause button.

All you would do is run your program, run fseventer, and if you make a change to your preferences or configuration and it is stored in a file, it will show you the process touching the file.

If it is something like Entourage which stores its rules in files but then keeps them in memory until quit/start, you may want to close other programs and launch your program of choice to see what it loads, then quit it to see the reverse process.