Have you thought of just using the ignore function.
The ignore function is somewhat useful.
However, the best solution I've seen is a voting system (like Reddit), where trolls get down-voted and effectively ignored. For those who are interested, I'd recommend you check the
Bitcoin section on Reddit. Over 5,000 users and growing strong.
The more Bitcoin supporters on Reddit, the more publicity Bitcoin will receive (by hitting the front page etc).