I often say "no offense" when following up a rather vile analogy where I use derogatory words to describe someone usually as a third person type of quote or as an explanation.

When someone in EoEo was mentioning some words for homosexuals I clarified with a list and made it clear that I meant no offense. The same is true any time I use the word nigger to make a point (i.e. If the man said, "You're a filthy nigger", you'd think he was a racist).

There are also a lot of situations where, like Shulp said, you have to be blunt and mostly it's just to reinforce that your comment, which will be interpreted offensively, is not a personal attack. I can attack your religion, but I may not mean a personal offense to you. I'm talking about your religion which only is indirectly related to you so it is not a personal attack.