The professionals do use specialized tools, things that allow more analog readings on the 1's and 0's. with the added info, it is possible to guess at what the data was before the erase. eg, if an analog meter normally reads 1.0V when a bit is 1, and 0.5V for a 0, then a reading of 0.8 would come up as a 1, but probably was a 0 that was overwritten by a 1. likewise a 0.95V might be a 1 overwritten by a 1. depending on the file format, and file system, various other things can be used to help at guessing. eg, if the file is plaintext, then a character like "A" is more likely to be used then "~", if the program finds the raw data to show either an A or a ~, the system can guess at the A. Text files are most likely to be recovered, as they will not be fragmented across the drive.
Programs that effectively erase data will often try to write random data over the eraseable data multiple times with randomized data.
Keep in mind that erasing files should not be expected to actually work. if the file gets paged for some reason, it will fill an area on the HDD that is easily overlooked. Likewise any temp files written, say by word, might be deleted automatically by word, and thus be recoverable even though the original is erased. because the data can be cached to the drive without the user's knowledge, a file by file erasure is not effective.
For the same reason, encrypted filesystems are not bulletproof -- the unencrypted files may be cached to an unencrypted drive. Since a simple delete is done on the cached file in most cases, the data will be directly readable, even without special tools other then software capable of interpreting the raw data. All thats needed is a way to determine what the data represents!