Few things off the top of my head:
Check dmesg, messages log and X.org log...
Run a memory test
What kind of hardware? Can you check the PSU?
Install Smartmontools (sp?) and check harddrive...
If I think of others, I'll post (I'm sure others. will, as well)...