ddrescue, beware there is another program called dd_rescue. The GNU version has a lot more to offer than this though. the webpage says it is superceded by the GNU version, but also give this:
It's still useful though for some special features, such as direct IO, sparse copies, splice copies, preallocation ...
Noteworthy are the data protection functions that have been introduced since 1.29 to allow safe deletion of files and storage devices with a fast userspace pseudo random number generator.
Also consider a high-end drive if you can get use of one (local computer shop maybe?). This can make a big difference, I have had DVDs which I haven't been able to fully read at all (even with ddresuce) on a cheap drive which have read first time (no special tools required) on a different drive.