What is the best way to wipe a hard drive?

I heard as a rule of thumb you should always clean / wipe your harddrives before you sell or give your computer to someone else.

So I am looking for a good program to do this.

From what I am told Darik's Boot and Nuke is a good program but the current version appears not to offer any SATA Drive support. I could not get my PC to recognize the boot CD.

Is anyone aware of any freeware that is good for cleaning a drive? Or any disk utility software that comes at a reasonable price?
 
A single pass writing "0"s over every sector is plenty good enough. If you do that then there's no way to get the old data back short of disassembling the drive and using a very sophisticated lab to mine the overwritten bits. Nobody's going to go to the expense of doing that unless your drive contained state secrets.