When I receive bitcoins I see a certain number of "confirmations" in the client. What do these mean? Why do most sites make me wait for 6 "confirmations" before a purchase will go through?
Bitcoin confirmations represent the number of blocks in the block chain that have been accepted by the network since the block that includes the transaction.
In simpler terms it represents the difficulty of a double spend attack. With zero confirmations no proof of work has been done, so you can't tell if anyone considers the transaction valid. Even with a single transaction it is possible for an attacker to pre compute a single block.
With zero or even one confirmation a double spend is very possible since the next block that is solved may confirm a different block instead of the one that has the transaction. That different block my show the coins being spent elsewhere. The odds that a double spend has occurred gets exponentially smaller with each confirmation.
An attacker must match the power of the entire bitcoin network to keep up with block creation so as time goes by it becomes increasingly difficult to forge a transaction.
It is generally accepted for most transactions that 6 confirmations represent enough security to assure the transition is valid.
If you don't grasp the basic concept, imagine for a second that a network outage split the bitcoin network in half. I could send one transaction giving 30 bitcoins to Abel to one half and one transaction giving those same 30 bitcoins to Fred to the other. Each half would accept that transaction and until the two halves reconnected, you wouldn't know which transaction would be honored tomorrow.
Confirmations are simply blocks that have been generated after the block that contains your transaction. Because there is no central authority that can be consulted to be sure a transaction will be committed, recipients use the number of confirmations as a way of protecting against double-spend attacks.
The network is always trying to extend the longest chain, and eventually, some chain will win. The deeper the transaction is in the chain, the higher the chance it will win because the network tries very hard not to duplicate efforts. (Because miners want their coinbase transactions to win, they all try very hard to extend the chain most likely to win, which makes sure it does in fact win.)
Effectively, the more confirmations, the higher the likelihood that a transaction will remain forever in the public hash chain rather than a conflicting transaction if there was one. At 6 confirmations, it is perhaps one in a billion that a transaction won't be permanent -- and that's if the sender is attempting a double spend attack.