You know, Flying Tim, that is an interesting question. How does profanity come about? I think it is part of a bigger question of, how does connotation come about? Words are simply sounds, however, they have both concrete and connotative meanings. Using certain words, as you have mentioned, can get certain reactions from people due to the fact that a word can have a particular meaning, but it often has an association attatched to it (such as shit and poo). I think that profane words are a product of associtation that has built up in our culture, as well as other English speaking cultures, over centuries. People don't really know what makes profanity bad, however, people just tend to accept custom without questioning it. If people didn't just accept things without questioning them, then there would be no religion and no pop music.
You know its interesting, though. Modern swear words in the English language seem to have come from Germanic origins. There doesn't seem to have been any profanity as far as I know that is shared by all Indo-European languages. Since modern Europeans come from ancient India, there are many similarities between their modern languages, such as the English word mother, which is mutter in German, mater in Latin, meter in Greek, and so on. Interestingly enough, there don't seem to be any paralells in profanity. The ancient Latin equivalent of shit, for example is merdus. Languages that derrived much of their vocabulary from ancient Latin such as Spanish, Itallian, and French use words for shit such as mierda, merda, and merde (although my French and Itallian are poor). By contrast the word shit in English seems to be related to the German scheis (which may be spelled wrong since spelling in German is crazy). So it appears that our modern profanity comes from Germanic roots, rather than Latin, at least in the case of our word for feces. As for the rest, more research must be done so as to rediscover our profane heritage.