I use a combination of Ad-Aware SE, Spybot S&D, and CounterSpy. CounterSpy is the only one that requires paying for. I was lucky enough to be involved with the Beta testing so I got a year of updates free.
Those three usually do the job. For really tough stuff, I go to HiJack This! It is a bit more advanced, but kicks butt.
I have also been known to go after registry entries as well. When it get personal.
I agree with Ted on Adaware and Spybot S&D - use those two and you should be OK for detecting spyware.
There are two other programs that are useful:
SpywareBlaster - prevents some spyware from getting installed in the first place. Be sure to download the updates after installing, then enable the protection. And update it periodically.
CWShredder - this is not really a general spyware scanning program, but is useful for getting rid of certain insidious parasites like CoolWebSearch that sometimes Adaware and Spybot have trouble getting rid of.
Then of course there is the best spyware prevention of all - don't answer Yes to everything that pops up!
I use the pay for versions of Ad-aware Plus and Spy Sweeper, the free (though did contribute) Spybot S&D, along with Microsoft's beta AntiSpyware. All but Spybot are proactive in keeping bad stuff off, Spybot is reactive. I run Spybot about once a week, never finds anything, the others work flawlessly.