Greylisting is a great method to prevent a lot of spam coming from hacked PC's or other systems not meant to send emails. Greylisting works by first returning a 450 status to the sending server which basically says "I'm unable to handle your email right now, pleaase try again". Since most non-RFC compliant servers won't retry sending the email but correct configured email servers will try again you have prevented spam delivery, yay!
Do like this on Ubuntu:
$apt-get install postgrey
Then edit your /etc/postfix/main.cf and add to:
smtpd_recipient_restrictions = [... som other stuff...], check_policy_service inet:127.0.0.1:10023
That is basically all you have to do. If you need to configure how long servers are greylisted or how long their records will be kept (if you don't receive many emails you will want to raise the number of days the entries are kept) just edit the options in /etc/default/postgrey according to the comments.