The goal of using a DNS blacklist should not be to stop all spam -- it should be to block a good percentage of the spam, say 1/2 to maybe 2/3 of it. You're mainly doing this to reduce load on your servers.
The next step, the truly effective spam removal step, is a bayesian filtering engine. See Paul Grahams original article. They main benefit of bayesian filtering is that it provides an individual score for each email, based on the recipients past email history, interests and language.
If you follow the above approach it becomes important to avoid false positives in the first line of defense. You don't really care to maximize the effectiveness of the first filter, as you'll probably catch the remaining spam with the second filter. But you don't want false positives, as they cannot be undone later.
For this reason I like the University of Alberta traplist as my first filter. It contains only entries which have a very big probability of being spammers, and entries are removed if they have not been seen spamming within the last 24 hours.
The list can be downloaded from here. It is created by first greylisting (delaying first-time mail senders) and then greytrapping (if a mail server is already greylisted & it attempts delivery to a non-publicized email address, then greytrap it).
After 24 hours a host is automatically removed from the list, and is free to send emails again. Thus if the spamming has ended (say, a trojan was found and removed), then the host is free to send emails again. And if he's still spamming, then he will most likely just end up in the greytrap again shortly.
As said, I like the University of Alberta traplist a lot, but for completeness I should also mention Spamhaus DROP. It has a more minimalistic approach than most other RBLs, and would also make a good first filter in the above setup.