For HDDs, you generally need to overwrite the data several times (with either random data or specific patterns) to completely destroy traces of old data. Otherwise it can be recovered by using advanced data forensic methods.
For secure destruction of information stored on the HDDs, the U.S. DoD Unclassified Computer Hard Drive Disposition specifies three iteration of writes: a character, its complement, another pattern, as a secure way to destroy unclassified information. Canadian Communications Security Establishment (ITSG-06) specifies similar procedure for the same data, using different patterns: all ones or zeros, its complement, a pseudo-random pattern. Bruce Schneier suggests 7 iterations: all ones, all zeros, pseudo-random sequence five times.
For SSDs, single erase cycle is enough to make previous data truly unreadable (and TRIM is your friend here if you care about your data being truly deleted), and writing new data over that guarantees security.
Secure-wipe of an SSD is properly done only with the manufacturer's tools. The tools used for HDDs will not work properly, due to automatic wear leveling and housekeeping procedures. It puts quite a lot of wear and tear on the structure (since it can be written to only that many times). I couldn't find any specific government-approved procedures for securely destroying data on SSDs.
Keep in mind though, that all governments seem to recommend destroying media containing highly classified (top secret) data instead of wiping them.