.bashrc defines the shell environment for a specific user.  It runs every time bash starts, regardless of what mode it runs in, such as an interactive shell, running from a remote call like ssh user@host cat /etc/hosts or even a mere shell script.
.bash_profile is a per-user login profile.  It runs once when you login and does things that a user needs when they interact with the system, such as the message of the day or a list of new messages.
/etc/profile is a system-wide login profile script.  It also runs once when you login, but runs for all users before their user-specific .bash_profile
For something environmental like a PATH variable, .bashrc or /etc/bash.bashrc is a good place so that you don't have to worry about login or non-login shells.
This page has some details: http://stefaanlippens.net/bashrc_and_others