Recuva is the best free one that I have used; among paid ones there's EasyRecovery Pro.
Then again I also know of a recovery lab in my home city that does the job for dirt cheap (relatively speaking), so I kinda don't have to go through the hassle if worst comes to worst. These tools are mostly helpful with accidental deletions, much less so with filesystem corruption or, god forbid, mechanical failure.
Needless to say, if you're still using the failed drive, do not write any new data on it under any circumstances, and try preventing any automatic writing done by resident applications and system services (disconnect it physically until ready to do the recovery actions, if needed). And make sure to backup everything that takes a significant amount of your time to do via Dropbox, Google Drive, or whatever other free means there are.