My favorite disk maintenance software is probably DiskWarrior. It seems to fix more of my problems than the others. But it's rather spartan in other features. Definitely one to have in your toolkit.
Techtool Pro 6 is a great program. It does close to what DiskWarrior can do, but has all sorts of other features. Including creating a small partition on a hard drive that you can boot into to run maintenance utilities. You can also put other makers' utilities in there. It also has Safari and some other OS X features so you can research problems on the web while fixing. Though they do recommend not running other programs while fixing the boot drive.
DriveGenius 3 is a good one as well with its own set of tools.
But for checking disk integrity specifically, to see if imminent failure is there, all three of them check the S.M.A.R.T. status of your drive. Techtool Pro's S.M.A.R.T. checker is the most comprehensive. It helped me diagnose a whole batch of Maxtor 500 gig drives I had bought about six year ago (about 18 of them) and sure enough, within a few months, more than half of them began failing.
You can also use what's built into OS X. I have found Disk Utility has fixed things none of the others could fix.
And then you can start OS X up in single user mode (Raw UNIX) and check the drive as well. Here's how you do that:
Boot the computer and immediately hold down Command + S.
You'll see text scrolling and then terminal will appear. It gives the instructions I'm about to type right there so you don't have to have it written down.
first you type:
and press enter.
It will run through checks and tell you if the drive appears to be okay, and if it has modified the drive. In the last few versions of OS X, if something is modified it will run the test again automatically. Once it reports the drive appears to be okay, you can go back into standard OS X.
To do that, type:
/sbin/mount -uw /
Hit return and it will reboot and start up normally. I use this every time I have a kernel panic or the computer locks up. Though with Lion I have it set to restart automatically if it hangs. So I'm ready to hold down Command + S as soon as I hear the boot chime.
Hope that's not too much information. :-)