Good advice from Jim R, make sure to do that.
Another thing to do is check to see if this may be a hanging third party driver causing this. If you are able to boot Safe Mode than all MS system devices and drivers are working, now lets see if a 3rd party driver isn't.
Hit "Windows Key+R" to open the run box, then type msconfig and hit Enter. On the General tab select "Diagnostic Startup" and then Ok and reboot. If the system boots now then it is a 3rd party driver hanging the system. Now you open msconfig again and then select "Selective Startup" and uncheck the Startup items box and check the Services box, reboot system.
If the system doesn't boot, the problem is within services and these need to be disabled and enabled one at a time, rebooting inbetween to see which one causes the problem to return. If the system boots then it's a startup item and the same thing goes here, de-select all and add them back 1 at a time, rebooting between each one. The last one added that causes the system to malfunction again is the problem one and needs to be reinstalled or disabled.