For software the best tools are actually free, such as ddrescue and hddsupertool.
Using a hardware imager will often get much better results than a software tool only. Unlike software tools, hardware imagers are more aware of what's going on with the drive. So if it goes unresponsive on a bad sector the tool will soft reset it, then hard reset it if that doesn't work. If nothing else can get it responsive it'll power cycle the drive, etc. Also many hardware imagers can control a lot of drive features such as the read timeouts, ATA mode, etc. so an experienced tech can optimize the drive and get the maximum amount of data. We see cases all the time where software alone wouldn't stand a chance to image a drive, but our hardware can plow right through it with a bit of tweaking.