right, i had a look on google, some people say it could be a usb device, so could try unplugging them all, then plug one in, try shut down, if it works, plug the next one in, then shutdown etc. until you find the one that causes problems..
someone else said
ermmmmmmmmmmmmmmm... i had a quick look on the net and people have said go in msconfig and disable each service one by one, until it shutdowns properly.
someone else said, disable all services, then enable half of them, then if you still have the same problem, disable that half, and enable them 1 or 2 at a time until you find the service that is causing it to hang.
other people have said it happens when you use virtual desktops...
could also try disabling "fast shutdown" if you have it enabled atm
but looks like theres loads of things that cause it
ps. how long has it been doing this? and what have you installed just before it started, software or hardware drivers etc.