I've had a reasonably good experience with SpinRite, but I think it's highly overrated. In fact, it might just be too clever for its own good. There are free solutions which work just as well (actually, the free ones might work even better).
We had a 200 GB NTFS drive that suddenly failed catastrophically. This was supposed to be the "shared" drive on which people just dumped stuff temporarily, but it ended up turning into a huge data repository that had miscellaneous backups, as well as a bunch of files that nobody bothered to back up anywhere. When the drive died, we couldn't get it to mount, no matter how many times we ran chkdsk or other tools.
In the end, we purchased and ran SpinRite...which continued to run for more than 1 month. Every time it hit a bad cluster, it spent hours trying to recover data from it. Again, it ran nonstop for more than a month trying to recover data from a defective 200 GB drive. (In SpinRite's defense, it can scan a drive in just a few hours if there are no physical defects.) SpinRite was eventually able to recover all our files, although many of the larger ones turned out to be corrupt anyway. SpinRite also made the drive mountable again. So I'd definitely say it did something.
However, despite the fact that it worked, I don't know if it helped any more than just booting off a Linux CD and running dd to copy the entire drive to a file. There's something to be said for not running a dying disk for an entire month, as it's dying! Physical defects seem to have a habit of spreading. It wouldn't surprise me if the disk degraded even further while SpinRite was running. Personally, I'd rather get the data off the disk as quickly as possible, make several backup images, and try to repair the files offline.
We've had to recover other data recently, and dd has done a great job. You can tell it to copy all the good data off the drive, then you can run it a few more times to go and try harder (i.e., use smaller block sizes) trying to pull data off the bad areas.
If you've got an hour or so to spare, I'd say it's worth your time to learn how to use dd instead of buying SpinRite:
Or go the slightly easier route and just download dd_rescue:
If you still want to run SpinRite, I'd highly recommend doing it AFTER you've copied all existing data off the drive, just in case running the drive for a longer period of time allows it to become further degraded.
Every time you get a new drive, you should boot off a Linux CD and run badblocks to check it for defects. You should also periodically check your drives for degradation. We've had at least 2 brand-new drives come with defects, and 3 or 4 more die within a couple of months (even though we did thorough tests before putting them into service).
Note that you need to run badblocks as root, or prefix the commands with "sudo " if you're booting off an Ubuntu live CD.
Brand-new drives (warning: destroys all data!):
badblocks -wvs /dev/sd#
badblocks -wvs /dev/hd#
In-use drives (read-only test):
badblocks -vs /dev/sd#
badblocks -vs /dev/hd#
Where # is the drive number in Linux. IDE drives usually are called /dev/hd#, and SCSI (and often SATA) drives are /dev/sd#.
More info on badblocks here: http://en.wikipedia.org/wiki/Badblocks
By the way, even though dd and badblocks are Linux programs, you can use them on NTFS drives, and you can even mount NTFS partitions in Linux, regardless of whether you're using MBR partitions, dynamic disks, or GPT disks.
Steve's documentation discusses a lot of hypothetical problems that SpinRite theoretically could help with. For example: data fading away over time and needing to be "refreshed" by reading every block and writing it back to the disk again, or the notion that repeatedly repositioning the read head on either side of a block will eventually permit you to statistically divine the original data stored in that block. Logically, these things make sense, but I think they are just solutions to academic problems which may not actually arise in the real world. (At least, with hard disks--maybe Zip disks and such were more susceptible to data fading.) If Steve cited papers on the subjects, or if these techniques had been experimentally proven to be effective, then I would expect for there to be many open-source or commercially-available SpinRite clones. It would be well within the capabilities of an average script programmer to write a Python, Perl, or UNIX shell script that includes all of SpinRite's documented features.