It can be confusing which file to put certain shell / environment setup information in.

Generally speaking (i.e. not with Mac OSX's Terminal.app) .bash_profile gets sourced only on login. Specifically this means only when you enter your username and password from the console. The .bashrc file is sourced when starting an interactive session, that is, whenever you open up a terminal.

There is some confusion here, when you open up a login shell, such as if you use the su - command or run an explicit login shell sometimes provided by a desktop environment. In these cases the rule applies, a login shell means .bash_profile is sourced first, then .bashrc.

I tend to put environment setup in bash_profile, things like paths and any specific one-time configuration settings that aren't likely to change very much. But it's quite reasonable to just put a source .bashrc in your .bash_profile and then put everything in .bashrc.