You can perform "Thorough" scan in ScanDisk in Windows 98 or in Win2000 and above, go to Command prompt, and type chkdsk/r and press ENTER.
These two methods find bad sectors and repair them (repairing a bad sector means trying to extract the data present in that bad sector).
@justhink : If by 'repair' you mean actually repairing the bad sector so that it can be used again, the answer is no.
Some viruses and software errors can cause a sector to appear bad when it isn't actually so. Otherwise, a bad sector has become physically bad and unfit for storing data.
There are tools that will hide the bad sectors. But they just hide them from showing up as 'bad'. They don't actually repair them.
The amount of space taken up by bad sectors is normally very small compared to the total amount of space. So the space gained by repairing bad sectors would be very small anyway.
When the hard disk is nearing the end of its useful life, the number of bad sectors may increase rapidly, and may even take up an appreciable amount of space. In such cases, it's high time the whole drive is changed.