Since XP (definitely since Vista, I think), BSODs are usually caused by faulty hardware (e.g. bad memory) or driver issues.
Download the tool linked by Kein and google for a list of Stop Codes, that might give you some first idea what caused the BSOD.
That being said, it can still be hard to track down the ultimate cause for a BSOD.
Some time ago, I had trouble with BSODs after buying some additional memory, yet even extensive testing of the ram sticks didn't show any issues. Eventually I was able to solve it by swapping the position of new and old memory sticks on the mainboard...
My most recent case was caused by a driver installation. Luckily I remembered which driver was likely to blame, so I could solve it by re-installing an older driver version.