Have you tried "last good configuration" or "system restore"?
I would suggest following steps on the URL mentioned ( follow step 2 under Method 2"): http://www.vistax64.com/tutorials/1...
As you are able to boot to the desktop in safe mode you may try and configure the computer to clean boot state and check if any of the third party application or services are conflicting when booting in normal mode. To configure the computer in clean boot state, follow the link given below.
How to troubleshoot a problem by performing a clean boot in Windows Vista or in Windows 7
Hope this helps.
Thanks & Regards