As storage technologies change over time, using different encodings and remappings to deal with sector errors, the best way to permanently erase/wipe/shred data changes also.
Methods for flash drives and other solid-state drives are covered nicely at Jesper Mortensen's answer on SSD erasure.
Various methods for hard drives are described at http://en.wikipedia.org/wiki/Data_erasure and include
- "Secure erase", a function built into modern ATA hard drives
- Gutmann's methods for various old hard drives
- An oft-cited data sanitization method in NISP Operating Manual (DoD 5220.22-M)
Does the ATA "secure erase" cover all modern hard drives and interfaces?
Are there modern storage devices besides SSDs that require something different?
The other option I've heard of is always encrypting everything you send to the drive yourself via something like Truecrypt. If you do that, it would seem that you have to be able to securely destroy the keys when necessary. And in the absence of a neuralyzer, does human memory of the password render any hard disk encryption schemes vulnerable to data recovery?