Since you asked, I'll list the stuff I do for spam.
For the spam user accounts, I have a filter plugin set up to block all usernames registering with "attoryneyjobs" or "attjobs", and a filter for profile info blocking the domain.
For posts on the site, I have it set so all users under 30 points have their posts needing approval. (Each user starts with 20 points on my site so it's the equivalent of one upvote.)
In addition, you need 30 points to upvote. That's to stop someone creating a sock puppet account and upvoting another post just so they can post spam. Seems to be working well so far. It's a little annoying having to approve posts, but some of our users don't read the rules anyway and post bad posts, so it prevents that a little too.