For non-Solid State Drives (SSDs) I would use a tool like the open source TrueCrypt full-disk encryption. Using the software you want to encrypt the entire disk, including all system partitions, and then change the key to a very long random string. Then format the drive.
If you put sensitive data on a non-encrypted SSD then a good way to physically decommission the drive is to heat it with a propane torch until the PCB catches fire. At that point the magnetic domains aren’t magnetic anymore.
[This question got some great answers, and in addition provided some interesting insight into the differences between traditional hard drives and SSDs, and why SSDs are harder to rid of data. Check out the full question for more info.-- OH]