I will change someone's profile to disable everything (PM's, profile changes) and suspend their posting privileges after notifying them of a problem. I'll leave it like that for a week or two.
If the person breaks the rules again after privileges are restored, I will ban him/her. I have only permanently banned 3 people (out of 8500?).
One thing I found to be very effective, when I can get the info, is to tie offensive posts to a work computer. I had a guy from CalTrans who was abusing other members and me, even after banning he was doing it via email, so I collected emails and posts from his office PC and notified his manager. He stopped immediately.