One word about SpyBot - it uses a different method to detecting malware than most software - instead of scanning every file, it has a signature of 3/4 of a million malware and scans for each one. Naturally this means it's useless to new malware or morphological malware. I discovered that last week after dealing with a computer with a single malware on it (rogue anti-virus malware - pretended to be 28 other viruses and offer to clean it for a fee) that it could not detect (even when I told it to specifically scan the folder that I knew it was in - my uncommon sense is superior to SpyBot).
Note the difference between viruses and malware.
EDIT: I should also mention that Ad-Aware has been getting less effective over the last few years. I used to love it (it was the only program I used up until I got a free version of Kaspersky), but I've noticed how more and more malware would be missed by its scans. Malwarebytes is more effective now.