'Faggot', often shortened to 'fag', is used as a highly offensive term for a male homosexual .
There are a lot of myths about the origin of the term. It is clear that the earliest and original use of the word 'faggot' means a bound bundle, normally of kindling of some sort. The term was extended to bundles or groups of all types, especially of things that weren't of the same type.
As faggots were often used to light fires, the word faggot became associated with burning heretics. In the middle ages, people who repented from heresy wore the emblem of a faggot of wood to show that they had been saved from that punishment.
None of this, however, explains how 'faggot' comes to mean a gay man. There are various explanations people have attempted on the basis of the above definitions. The most common is that homosexuals used to be burnt as witches, and so calling a gay person a faggot is a reference to an ancient and terrible punishment.
This is false. The use of the word 'faggot' to refer to gay men is a twentieth century invention, and is highly unlikely to recall a practice of hundreds of years before. Also, there is no evidence that people ever associated witch burning with gay people.
More recent attempts to link it to a Nazi practice of using a bound group of homosexuals to burn bodies is even more ludicrous. Firstly, there are recorded instances of 'faggot' to refer to a gay man as early as 1915, well before the Second World War. Secondly, why would an English word like 'faggot' be a Nazi term?
Another common myth about the origin of 'faggot' is more plausible, but equally false. This is that the word came from the fagging system at British public schools (see fag). The claim is that fagging sometimes involved some kind of homosexual behaviour. However, fag in that sense isn't short for faggot. Also, faggot is an American term which only crossed the Atlantic recently, making it unlikely to be based on a British custom.
The most likely answer is surprisingly boring. Faggot or fagot was used from about the late 16th Century onwards as an insulting term for a woman. It kind of implied haggard, annoying and ugly. One source compares it to today's use of the term 'old baggage'. This would explain why it isn't really used to refer to lesbians.
It is probably this usage that was applied to effeminate men, originally in much the same way as the gay community might now refer to an 'old queen'. However this term, for whatever reason, became the offensive one and remains it.
The gay community seems to have done a lot to reclaim words once used against it, like 'queer', 'queen', and to a lesser extent, the shortened 'fag'. However it seems that the full term 'faggot' keeps a large degree of its shock value and offensiveness.
http://www.takeourword.com/Issue033.html
the Oxford English Dictionary online.