Very good spam fighting techniques can be found on ACME website:
=> http://www.acme.com/mail_filtering/

My setup and techniques are following:

=> Nolisting

    stargrave.org mail is handled by 10 mailfake0.stargrave.org.
    stargrave.org mail is handled by 20 mail2.stargrave.org.
    stargrave.org mail is handled by 30 mailfake1.stargrave.org.

    mailfake domains exist, have an address, but no daemon listens on
    them. Many robots will connect only to the first MX.

=> Null MX

Check for reverse DNS record works *very* good.

Postfix configuration options that work relatively good:

    disable_vrfy_command = yes
    strict_rfc821_envelopes = yes
    smtpd_helo_required = yes
    smtpd_client_restrictions = sleep 2, reject_unauth_pipelining
    smtpd_delay_reject = no
    smtpd_recipient_restrictions =
        permit_mynetworks,
        reject_unauth_pipelining,       # Do not allow PIPELINE at all
        reject_non_fqdn_helo_hostname,  # Reject HELO with non FQDN
        reject_invalid_helo_hostname,   # Reject malformed HELO
        reject_unauth_destination,      # Reject unknown destination
        reject_unknown_client_hostname, # check IP->name mapping,
                                        # check name->address mapping,
                                        # check name->address match
        reject_unauth_destination,
        check_policy_service inet:127.0.0.1:10023

    # Some mail is rejected at all from some domains
    smtpd_sender_restrictions = hash:/usr/local/etc/postfix/access

    smtpd_discard_ehlo_keyword_address_maps = cidr:/usr/local/etc/postfix/esmtp_access

=> Greylisting
This works very well, however will increase legitimate mail delivery
time for the first time.

I refuse to use any blacklists (RBL, DNSBL), because in that case
delivery of email is under control of someone else. I do not trust them.
Moreover there is *high* risk of false positives. I do not like when
people use this technology, marketing bullshit, unfair play.

Own manual maildrop rules that places mail directly into /dev/null, or
spam folder. I check spam folder once or twice a week and quickly wipe
it if visually it have obvious spam.
=> maildrop

I used Bogofilter Bayesian filter, but currently it is an overhead.
=> Bogofilter