Most times I can't shutdown a computer, it's because there is a volume that won't unmount.
Try this: Do your shutdown, and wait for it to get stuck again. Relaunch finder. Go to applications/utilities, and open up the console.app
Look for the system.log in the drawer on the left. You might have to hit show log list. Copy the last 20 or so lines, or anything that looks relevant, and post them back here.