Because all of your bitcoins are stored in a file, it's important to back up regularly. To avoid loss, you should back up at least once every time you perform a total of 100 of any of these actions:
- Send bitcoins
- Generate bitcoins
- Receive bitcoins via IP address
- Create a new address
Receiving bitcoins via Bitcoin address doesn't count toward the 100.
If you don't back up after performing 100 of those actions, it's possible for you to lose your entire balance, no matter how few coins you actually sent or received.
Bitcoin stores 100 queued addresses in wallet.dat. Once you use them all, a backup is necessary. All of the actions above use an address. If you don't want to back up so often, you can increase the number of addresses in the pool by always running Bitcoin with the -keypool=number switch. For example, with -keypool=500 you will be able to safely back up after every 500 actions. If you set this to a huge number, the next time you start Bitcoin it will take a while to generate all of the keys. Also, the wallet.dat file will permanently grow by about 1 kilobyte per key.
You need to back up after sending bitcoins because Bitcoin can only send entire previous transaction credits. If your wallet is made of 50 BTC that was gotten from one generation, then you can only send exactly 50 BTC -- no less. If you want to send 10 BTC, then Bitcoin will make a single transaction with two "outputs": one to the real destination, and one back to a new address that you own. Since the new address is not in your old backups (if you don't back up every 100 actions), you will lose this "change". Usually the amount lost is small, but it can destroy your entire balance if, for example, your balance is composed of a single 20,000 BTC transaction that was just sent to you. Bitcoin chooses previous transactions somewhat unpredictably when sending, so you should not guess about what the change will be.