If I sent bitcoins to someone, but then want to cancel this transaction after it was already made (like a chargeback on a credit card), is this possible with Bitcoin?
No, a bitcoin transaction which has already been included in a block on the longest chain cannot be reversed. This is by design as Bitcoin is intended to behave much like cash, with recipients being assured that the money is now permanently in their possession after a transaction has been included in a block.
Bitcoin transactions cannot be reversed. However, there are escrow services that make sure that transactions are safe for both parties. For example, if you want to buy an item from someone, using an escrow service, you would first send the Bitcoins to the escrow service. The seller then knows their money is secured and sends you the item. Once you've received it, you give your "ok" to the escrow service and the seller receives the money. If there's trouble with the item (or you never receive it), the issue can be settled through the escrow service.
Aside from that, fraudulent transactions can also be settled through legal means (that might be more difficult, though).
One service (that's currently not available, unfortunately) is ClearCoin: https://clearcoin.appspot.com/
If you search for Bitcoin Escrow, you will find a couple of solutions (I'm not posting them here because I can't recommend any; maybe "What are reliable Bitcoin Escrow services?" would be a good question ;-) ).
Bitcoin transactions are not reversible. This is by design.
Whether it is a feature or a flaw depends on your point of view. Many merchants consider it a feature as it eliminates counterparty risk. However, some people, notably Wikileaks, have called for a cryptocurrency with time limited reversibility.
It is not possible to reverse a transaction that has already been transmitted on the bitcoin network. However if you can keep a transaction from being transmitted then you can close the client restore the wallet file from a backup. When the client is restored with the -rescan flag the transaction will no longer be pending.
The only way to "reverse" the transaction is to immediately double-spend from the same set of UXTOs to a different address that you control (within a few seconds after your original transmission) and pray that the doublespend reaches enough nodes and wins.
But if your tx is already confirmed in a block, then no way.
There is a new cryptocurrency on the block (Reversecoin), that offers functionality to reverse ones transactions. Say a hacker gets your coins, you can cancel the transactions and get your coins another safe address of yours. Reversecoin does this in a completely distributed fashion, with out needing for any kind of central or third party. Check out our website Reversecoin for more details.
Disclosure: I am the lead dev for Reversecoin.
To be honest all has been already said about this topic and all the competent previous posters are right in that Bitcoin is by design not reversible.
But to have all the facts at hand, one needs to mention also the event of March 2013 where Bitcoin underwent a 24 block reorganisation. Before people start screaming this was a network issue/program issue and no one did intentionally try to reverse a transaction - I know, it is just so no one can say afterwords, no one told me that was possible, even if it is a remote possibility.
I think people need to know that it is in fact possible, but very very unlikely. As I do not want to scare people away (and hopefully comply with other opinions on this matter and prevent any outrage) the probability is low and there is no incentive from miners to try something.