This can recover everything on the memory card that hasn't been overwritten, saving it to your hard drive.
It's a very good open source program for recovering files, and it ignores the underlying file system completely, reconstructing them based on header information found.
It doesn't have a nice Graphical Interface. But, it's very easy to use. Basically, just select the memory card or hard drive you want to recover files from and leave everything else at defaults (partition type of Intel, etc.).
You can also change where it saves the recovered images to if desired (defaults to subdirectories on the hard drive under the folder it's installed to). Here's a step by step guide to using it:
You'll see a download link on the left side of the page.