Ubuntu LiveCDs are good for checking memory and hard drives for errors. During boot up you can check the memory using memtest86 from the Grub boot menu.
After Ubuntu is booted you can check the hard drive using SMART monitoring tools. First set up networking and then open a terminal.
sudo su - apt-get install smartmontools smartctl --all /dev/sda
From the same terminal you can test for bad blocks.
badblocks -sv /dev/sda
This may take a while. Don't worry, it's non-destructive.