I agree with ctrservices for both cause and solution. Spybot S&D using the immunize option, and HijackThis are both great tools. Might I also recommend the following free tools:
SpywareBlaster from javacoolsoftware.com which blocks spyware and other potentially unwanted software..
Adaware SE Personal from lavasoft.com will catch things Spybot doesn't and vice-versa.
Spycatcher Express from tenebril.com - must be connected to the Internet during installation for updates. SpyEx has caught things nothing else has, and I change the default action from Quarantine to remove.
The trial version of CounterSpy from Sunbelt Software may find and remove things none of these others will.
I've also been using Windows Defender beta from MS which prevented an unwanted change to my IE homepage before anything else.
If I still feel that all of this software has missed something, I will uninstall the free AVG, download ZoneAlarms Internet Security Suite and run a deep byte level scan, it takes awhile.
As with all scans, I make sure that I reboot after removal and run all of the scans a second time to make sure the problem didn't get
re-loaded.
Reset all security Zones in IE to default level and check that Trusted zone only contains trustd sites.
Give some thought to using Firefox for a browser.
It's always a great idea to back-up any important DATA files, to external media, (CD/DVD, external USB etc.) before attempting virus/malware removal. Scan before re-installing the data.