There are two kinds; type 1 consists of words that are considered 'vulgar' by society, and type 2 consists of descriptive insults.
Type 1 I have no objection to. To me, saying "shit!" when you stub your toe has no negative effect whatsoever. Likewise, the gerund "fucking" has come to mean "extremely" or "the epitome of" – a satisfying version of "very." Why satisfying? because it is a harsh, extreme sound, fitting its meaning. Also included in this category are words/phrases like: "fuck" "crap," "damn," "ass," and "pissed off." (as long as they aren't used against people, like "fuck you" or "you're an ass")
Type 2 consists of words that define a person as an action -- [TW: all kinds of slurs]"cock-sucker" "liar" "mother-fucker" or a body part -- "cunt" "dick" "ass." (I don't find those words offensive when used to mean actual body parts, but I don't think it is okay to call a person by them and thus reduce them to a body part) Also included in this category are words like "slut," "bastard," "nigger," "spic," "whore," "fag," "[that's] gay" "retarded," "bitch," "asshole," and "idiot." These words are dehumanizing. Any one using the word 'slut' is stating that some women are nothing but 'dick receptacles' -- supporting the idea that some women deserve to be raped. Any one calling someone a 'bastard' is not only missing the target and insulting his mother, but is also stating that people born out of wedlock are worthless. Any one calling something/one 'gay' as an insult is stating that queer people are worthless. Using ethnic slurs like 'nigger,' 'spic,' 'mick,' etc. is obviously denigrating an entire race – saying that their race or country of origin makes them less of a human than yourself. All humans have equal value and any opposing idea is disgusting.
Also, I understand that 'bitch' is often used to mean 'strong, opinionated woman' – what the fuck? "I'm going to call myself less-than-human to express my strength." ??? You can't take an insult upon yourself and change the meaning to a positive one. Call yourself an Amazon, or compare yourself to a woman like Hatshepsut – don't try to 'reclaim' a word that never had a positive meaning. ((I understand exceptions for those who have strong dog totems and literally mean 'female dog' when they call themselves 'bitch'))
Not to say that I am perfect! I break my own moral code sometimes, especially if someone harms one of my friends. Most of those words I have trained myself out of but I allow myself to dehumanize people by calling them 'assholes' sometimes. I hope to eventually quit that.