1. Use ddrescue (http://www.gnu.org/software/ddrescue/ddrescue.html) to copy a complete image of your hard drive onto another drive with lots of space. Let it work for a long time and it will probably get all the data off. If it doesn't you can try the freezer trick, but don't be too hopeful.
2. Unplug the busted hard drive and set it aside. You can perform all the subsequent recovery steps on the image you just copied, which is better than stressing an already-dying drive.
3. Mount the hard drive image (http://tcdb.grinnell.edu/wiki/pmwiki.php?n=Help.Ddrescue).
4. Use testdisk (http://www.cgsecurity.org/wiki/TestDisk) to try to recreate the partition table.
4.5 Alternatively, you can use parted with the rescue command, but that works better if you know exactly what your partition table was.
5. If that fails, use photorec (http://www.cgsecurity.org/wiki/PhotoRec) to pull off all the files it can find. It should be able to get most of your documents, photos, etc, but it might not find everything, and they will be missing file names and folder structure. Remind yourself that this is better than nothing.