I learned long ago, never to wrestle with a pig. You get dirty, and besides, the pig likes it. --George Bernard Shaw
"The advocates of X are jerks; therefore, X is false" is the classic ad hominem argument. But most of what we usually call ad hominem attacks simply argue that "The advocates of X are jerks." Only the former is a logically fallacy, but high-quality thinkers usually avoid both.
Why is this?
The simplest theory is that ad hominem arguments are inherently weak, so if you have high standards, you won't make them. Perhaps, for example, it is extremely difficult to know if a person is a jerk. High-quality thinkers will therefore realize that they don't have enough evidence to deem someone a jerk, and refrain from claiming that he is. Alternately, high-quality thinkers might suspect that "all publicity is good publicity," so trying to discredit people by pointing out their character flaws is counter-productive.
But there is also a signaling explanation for why high-quality thinkers would refrain from arguing that someone is a jerk. Anyone can argue that someone else is a jerk, but many people can't do better. So if you CAN do better, you can raise your status by showing that you've got the Right Stuff to make more sophisticated arguments. (A slight variation: By refraining from ad hominem arguments, you are signaling that "I don't have time for this silliness.")
Personally, I avoid ad hominem arguments, but I'm not too clear about my motives. In part, I believe the simple theory. It's usually hard to know if someone is a bad person. This also explains why I have spent many hours denouncing people like Lenin, Stalin, and Mao; in cases like these, we know enough to fairly condemn them. But I'd be lying if I denied that signaling doesn't play a role. I wouldn't want to denounce someone because it would hurt my reputation.
Introspectively, though, the main reason I avoid ad hominem arguments is just that I dislike making them. How about you?