this is a hard one because the causes can be many and logging often stops.
sometimes the cause is hardware -- temperature and memory and harddrive come to mind
http://www.memtest86.com/
but thats not to say Linux software won't lock it certainly will especially with the more commercial race to see whos fastest to put out the lastest untested build type distributions. Sometimes they are total crap.
did you change something lately ? driver os version hardware/software upgrade something or like that ?
make sure you are not just running out of memory without adequate swap.
make a big (2G) extra swapfile to see
See "man mkswap", "man dd", "man swapon" for more info on swapfiles
then i guess try to get some clue from the logs at least at what level the race/lock condition or segmentation fault or whatever is hapening (low level like kernel of higher level like gui like x)
or a fight between x and the kernel

pstree
is a fun command to see what's related to what.
and strace
http://sourceforge.net/projects/strace/
can sometimes help
and enable System Request (SysRq) keys might help you figure it out with some thought about how you want to use it
http://www.novell.com/coolsolutions/feature/15751.html
wish i knew more -- it's a hard thing to diagnose