Section 7 of the official Bitcoin paper "Reclaiming Disk Space" explains that only block headers are needed to verify transactions. Essentially by making sure that the transaction has been buried behind enough blocks. Why is the block chain so big then? It seems like we could all just store headers and reclaim a lot of disk space. Can I independently verify the integrity of the network with only block headers?
Reclaiming disk space describes what is nowadays called pruning. After downloading the entire block chain, you can safely throw most of it away because old spent transaction outputs are never needed again. This is not yet fully supported in Bitcoin Core, but it probably will be possible in the next major release.
From the paper (my emphasis):
Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space
You're talking about simplified payment verification (SPV), the next section in the paper. With SPV, you use just headers and Merkle trees to verify that a transaction has a certain number of confirmations. A transaction with a high number of confirmations is probably safe, but you can't be 100% sure without downloading and verifying the entire block chain. SPV clients trust that the majority of miners are honest, which full nodes do not need to do in most cases. Today, SPV is used by many lightweight clients such as MultiBit and Bitcoin Wallet for Android.