Ok, I'll say it again
There isn't one single way to remove spyware or prevent it, there are different kinds of spyware and not all tools can deal with all of them.
While some people were right to mention Spybot, TrendMicro or AdAware, they won't solve all the problems.
You need to follow a procedure, for details, go to www.majorgeeks.com
click on spyware and follow their instructions. One of the steps is to download a software called highjackthis, there is a link on the site and that will create a log of your registry. You probably won't understand it but they ask you to post the long and they will tell you what to do.
Be aware however, there are more sophisticated malwares that even that procedure may not detect/clean.
Two situations (that I know of), one is when you get a rootkit, similar to what Sony-BMG used for its ineptware, but hackers do use it and it can go undetected by any antispyware software. If you suspect your computer is still infected after following majorgeeks procedure, then go to www.sysinternals.com
and download the rootkit detector tool (do a search on the site).
The other case is when the spyware attaches itself to the winlogon process, that's a pain in the ass because it can't be removed normally, the file is in use and there is no way to boot the system without it loading. If there is any spyware associated with winlogon, let me know and I'll explain to you what to do.