Amavisd scans mail for virii, trojans, worms, etc.
Spamassassin tries to identify spam.
Along with those two applications, you need something to go out and get the mail, something to send the mail out, and something to process the mail coming in/going out.
The setup I use is:
Postfix to send/receive mail.
Procmail to process mail: route it through amavisd and spamassassin, then sort it to appropriate mail boxes.
Amavisd to scan for virii, etc.
Spamassassin to seperate spam from ham (custom rulesets from spamassassin website help).