That kind of error is usually the result of a bad interaction between your hardware and the OS. Such stuff can usually happen if you got corrupted drivers, or some hardware failure/overheating problems. Since you've got a laptop, replacing the hardware is pretty much out.
Though options are limited with a laptop, we can try to eliminate some obvious problems first.
Since you say a system restore seemed to make it better, it's possible you might need to update your drivers. You could start with that, but since the problem came back after a while it makes me think that it might be more hardware related. If you're lucky, it's just overheating, but if you're not, it could be full-blown hardware failure down the line.
If your BIOS has a temperature monitor, or SpeedFan says you have really hot temperatures, that might be a cause of this. In any case, some compressed air to your vents (while the system is off) might help. A longer-term solution might be to try out a cooling pad to see if that makes a difference, or have a laptop repair guy help you clean out the heat sinks. Hopefully you will have someone who can help you out for cheap or for free and this is the only problem.
If driver updates and adequate cooling aren't helping, you could try a reformat, but if the problem is a hardware failure, you're better off getting a new lappy. Either way, backing up your stuff should be a priority if driver updates and adequate cooling don't help.
Edit:
Some people on the net suggest running some hard drive diagnostic tools. If your hard drive is going bad, getting and installing a new one isn't too hard.