A transaction fee is paid to the miners when a transaction is made.
The minimum transaction fee required is determined by the "size" (kilobytes) of the transaction data. It is possible for a transaction to be sent without any transaction fee. However, it is very likely that the transaction will take a long time to be accepted, since there is no incentive for the miners.
Most small transactions require a fee of about 0.0001 BTC. Transactions with larger fees are given priority to be added to the block, so they are usually confirmed faster than transactions with low fees.