If the priority is recovering information, you attempt to use dd to create a block-level image of the drive. This is a command-line tool, and you'll be doing the work in Terminal.
You'll need an additional drive with enough space to accommodate all of the device your are imaging. This also works best if the drive you are recovering from remains unmounted.
First, get the device specifier for the drive (its /dev/disk... signature). The command diskutil info will give this to you. You have the choice of imaging the entire disk, or just a slice (which is another word for a partition). A device signature would be something like /dev/disk7 (the seventh disk device). A partition signature would be something like /dev/disk7s3 (the third slice on the seventh disk device).
When you have the signature, you can run the dd command in an attempt to extract information:
dd if=/dev/disk... of=/Path/to/recovery/point/image.img conv=sync,noerror
Where /dev/disk... is the device signature you got above, and /Path/to/recovery/point/image.img is a pathname to the image file you want to create. The option conv=sync,noerror will tell dd to keep imaging even if it encounters a read error. The block that errored out will instead be padded with zeros.
The imaging will likely take a very long time. Let it run overnight. The result will be a disk image that you can mount with Disk Utility to search for useable information.
This process is a standard forward image. It starts from block zero and reads all the way to the highest block. There is another process called a reverse image which can have better results, depending on the nature of the disk failure. To perform a reverse image, however, you need a non-standard variant of dd called dd_rescue.