New method with 0.9+ built directly into core client:
-rescan Rescan the block chain for missing wallet transactions
-zapwallettxes Clear list of wallet transactions (diagnostic tool; implies -rescan)
It does exactly what it says - it rebuilds the transaction list from the officially confirmed blocks.
Naturally, get a reliable wallet backup first.
First step:
"C:\Program Files\Bitcoin\bitcoin-qt.exe" -rescan
Second step:
"C:\Program Files\Bitcoin\bitcoin-qt.exe" -zapwallettex
Or is it:
"C:\Program Files\Bitcoin\bitcoin-qt.exe" -rescan -zapwallettex
in one command line?