Simplistically: Each transaction can optionally include a fee as an incentive for Bitcoin miners to include the transaction in the block they're calculating. Right now, blocks can produce new "mined" Bitcoins, so the reference implementation doesn't frequently add a fee as the incentive to calculate a block is still quite high. As the "mining" (new Bitcoin creation) rate declines to zero, fees will become more important as an incentive to continue calculating new blocks.