Also, if it's mechanical, sometimes putting it in a plastic bag in the freezer helps for a short while (sometimes just enough to get that important file back). Check the vast interweb for more information.
No offense, but this is very risky advice! Unless your data is essentially worthless and you're OK with the risk that you may end really destroying your data, do not try to freeze your hard drive!
DiskWarrior is a great "repair" tool. BUT you should only run "repair tools" on a clone of your bad hard drive. Trying to "repair" a bad drive with potential mechanical failures and/or bad sectors can end up destroying your partition data and possibly destroying files. Google "ddrescue" to find out more (it's free).
I concur that it's risky but this is also common place in repair shops. I would consider this a viable option but would hold off on using it until I've exhausted all other efforts. Basically, make this the last attempt before you send it off for forensic level recovery.
DiskWarrior first scans the partition, constructing a snapshot of the system. Once it's created the snapshot it mounts the snapshot as a read-only partition. This is commonly used for data recovery for systems that won't boot or mount properly. DiskWarrior will often (75-80% of the time in my experience) mount the snapshot, which you can then pull data from using CP in Terminal or other copy methods. Once you're comfortable that the data is secure elsewhere you can then proceed with the repair through DiskWarrior, which may or may not be successful. Along the same lines as ddrescue but with a GUI and fairly strong repair tools built in.