The generating of new blocks is what sets the transaction "in stone". And the more blocks past a transaction's inclusion, the harder it is to reverse that transaction - more blocks = more certain you have actually received the money.
Prior to being included in a block, it's entirely possible for the payer to issue the same money to multiple recipients. Once it's in, it's assured that only one is included, and others are therefore invalid. So it's in recipients' best interests to wait for a few blocks before totally accepting something as "paid".
From how I understand it, verification involves:
1. Confirming the privately-signed transaction against the public key of the source wallet (transactions not forged).
2. Confirming against the historical transaction chain that the coins actually belong to the source wallet (coins not forged).
3. Passing the verified transaction along to other peers.