Recuva (they pronounce it "recover") is a free utility that can be run from a USB drive or installed on a system.  It's easy to use and has options to pick the type of file (pictures, email, music, documents, etc.) and file locations - or just show all undeletable files on a specific drive. [more]

There is a deep scan option, but if this is necessary, it may be difficult to restore the files.

This is a good way to restore files that may have been accidently deleted or files that have disappeared because of disk errors.  It may be a good thing to use in combination with SpinRite (not free, but a very useful utility when disk hardware errors occur).

http://www.piriform.com/recuva

http://www.grc.com/sr/spinrite.htm