We use "Stop Forum Spam" that does manage to block quite a few of the baddies, but they keep using e-mail/IPs that are not known to the central spammer database, so it makes it tough to track at first. I report every one that isn't already in the DB by the time I see it.
Not sure what other restrictions are really feasible there. If we put a minimum post count on links, that just makes them post even more spam messages until they clear the limit. Having to approve everyone's first new post might be a bit too much of a burden on the mods/admins. (If SMF supports that... not sure if it does, haven't looked)