Since a couple of years there is a brilliant tool included in Debian/Ubuntu distro’s: shred
This tool will write random stuff on your harddisk which makes it harder to recover.
There are some nice options to write multiple times over the previous data.
This is something I use:
shred -n2 -v -z /dev/sde
-n2: This will write 2 times over the previous data
-v: Verbose, so you can monitor the process
-z: Zero all previous writes out to hide the shred.
/dev/sde: Your device you want to erase, replace with your own!
Of course with very expensive hardware there are some parts recoverable, but for normal use I think it’s fine.
Use at your own risk!