Restore points are cumulative in reverse – each new one only saves what's changed – so old points rely on newer ones to work; if one corrupts then all older ones are lost. That means the older a Restore point, the less reliable it is, so avoid using anything but the most recent one.
Open Disk Cleanup (Start > All Programs > Accessories > System tools) and – if prompted – choose "all users". On the More Options tab delete all but the newest Restore point. If all else fails, disable System Restore and lose all Restore points, then re-enable it.
For XP use the tool here; in Vista and Windows 7 open System Protection, untick all the boxes and click Turn off System Restore > Apply. Tick your system drive again and click Apply to switch it back on.
If you're plagued with specific error messages, or System Restore doesn't work well, you'll find useful solutions here.