Spammers, flamers, competitors - anonymous posting on the Internet is a great resource for many, but there are always those who abuse it.
I don't think it would be wise to discuss all the ways to identify and ban trouble makers here - it would probably give some people a few too many ideas! ;)
But going over the basics can be helpful.
Flood Control If they are going to spam - then make them wait! ;) Some forum software allows one flood control timer to be set for different user groups (ie mod and admin dont have any flood control).
Email registration Make sure people need to use an unique email address to sign up and activate their account - this makes it that bit more time consuming to constantly spam.
Swear word filters are your friend! I once had someone constantly spam a get rich quick scheme on our forums. I banned the usernames (12 or so within a day) initially. That wasn't working so I grabbed an unique part of their URL and put it in the swearword filter.
EG: www.widget.com I would have added et.co to the swearword filter. This meant that not only the URL was inactive, but it also wasn't recognisable. widget.com isnt a good example - in my case the URL was lengthy and it was much easy to block an unique part of it.
Embrace the spam Not reccommeded unless you have a talent for debating and sarcasm, and only applicable if the spam isnt illegal / dodgy stuff.
Simply allow it (perhaps edit the URL so it isn't active) and start off a discussion about how bad it is. It will eventually die down and the spammer is likely not to come back! This can be a can of worms tho, so be careful!
IP Addresses Follow the IP trail of troublemakers. Some people create several users on a forum and hold discussions with themselves about their site / product / etc - checking the IP address is a basic way of finding out.
However, banning by IP is not really wise - you could be blocking more legitimate users.
Hidden user groups Got a spammer? Move their thread to a private forum that only they and admin have access too (but give the impression that a lot of users have access). You may be able to trick them into believing you have allowed their spam! At least it will be out of the public eye and they will be semi-content not to come back! ;)
Anyone else got some top tips they would care to share? :)