By default, Bitcoin-qt creates and maintains an address pool of 100 unused addresses. If you backup your wallet.dat file, this pool will be backed up as well, since it's included in the file. Now there are multiple things that use up one address:
-Sending BTC. By sending BTC any change gets send back to you to a new address, which is selected from the pool.
-Creating a new receiving address. This will also select 1 address from the pool of 100 addresses.
As long as you haven't used up the entire pool of addresses, you backup is the only thing that's needed to get your coins. If you run out of those 100 addresses you need to create another backup, so that coins received on new addresses that weren't included in the original backup, are backed up to your new backup. It is possible to increase the size of address pool if you don't want to backup as often, but I'm not sure how. Maybe someone else could chime in?
Anyway, here's a more thorough explanation of what I've just said: https://en.bitcoin.it/wiki/Man_page#Why_must_users_back_up_their_wallets_every_100_actions.3F