Do you have a bootable Linux CD? I keep one that I've used a few times to repair PCs (one particular friend came round so often that I made him his own Linux CD).
If that will boot all the way to desktop, you may be able to use it to repair damaged files in the Windows folder. If it won't, it may tell you why it's not happy - Linux is very chatty in boot mode.
If it's getting to the "Starting Windows" screen, then a memory fault is possible. If you have more than one memory chip, try taking them out and starting with one only. The trick of wiping the contacts with an eraser (the plastic variety) may help - but be careful about static.