This is the question that causes the most debate. I have heard westerners get extremely indignant about the use of the word, claiming that it is intrinsically insulting and racist. They claim that the word itself has negative connotations and cannot be used in anything but a derogatory manner.
For me, the giveaway in this debate is that there seems to be a clear divide as to who thinks the word is insulting and who thinks it is just a descriptive moniker. It is invariably the people who cannot speak Thai who swear that the word is insulting. It is invariably the people who can speak Thai who say that it is just a general moniker for western people and any connotations depend on the context in which the word is used.
You would think that if the people who can speak Thai and can understand the context in which the word is being used are saying that it is not an insulting word, then that would be a fairly conclusive end to the debate. Strangely, it just does not seem to convince those who are determined to feel insulted.
So really, believe me, the word 'farang' is not in itself insulting. My own wife uses it about me as a matter of course and I would be rather surprised if she meant it in a bad way.
That is not to say that 'farang' is actually a polite word. It may not be an insulting word but it is what we might consider to be casual or common language. It is a little like calling someone a Brit rather than British, an Aussie rather than Australian or a Yank rather than American. They are not actually insulting monikers in themselves but they are casual terms that encourage the feel that they may be used in either an affectionate or derogatory manner.
I think this is what has really cultivated the myth that farang is an insulting word. It is not that it is an insulting word but more that it is lower class language.