I'm not sure there IS a solution that works for fighting this.
For me, the answer is:
a) if you're big, have reverse DNS that works, looks like a server, and
doesn't look like a client (ie. the things Botnet looks for).
b) if you're small:
i) try to get your ISP to do the right thing (above) with your
reverse DNS, or
ii) get a hosted service that does the right thing (above) with your
reverse DNS, or
iii) use your ISP's outgoing mail server for your outbound mail, or
iv) don't have separate outgoing and incoming mail servers (ie. your
outgoing mail server's IP address should be resolved by a hostname in
either your mail domain's MX record, or your mail domain's A record)
And then use some heuristics like Botnet* to get rid of the hosts that
don't conform to the above.
(* the next version of Botnet is going to have an option for exempting
messages in case b-iv: if the sender's mail domain leads back to the
relay's IP address, then ignore the fact that it has botnet-like DNS ...
but I'll probably put a cap on the number of IP A records and MX records
Botnet will look at, to prevent spammer abuse ... a SOHO shop probably
wouldn't have more than a few)