What exactly is checked at various -checklevel's?
The other answer seems to be out of date, even at the time it was answered. The following seems to be a more up to date explanation:
From https://bitcointalk.org/index.php?topic=141200.msg1504768#msg1504768


0: Validate all block headers + compare (by hash) to blocks on disk for the last -checkblocks blocks
1: In addition, verify (standalong) validity of those -checkblocks blocks
2: In addition, verify that undo data matches checksums
3: In addition, check that the current chainstate matches can reasonably be the result of the last N blocks, where N is limited by both -checkblocks and the amount of in-memory cache (-dbcache); typically it's around 150.
4: In addition, for the last N blocks (see above), do full validation (including signature checks).


Note that the new default (3) is in fact a stronger check than the previous highest level (6).