In itself, "foreigner" isn't an insult. However, context matters. As a girl, I read all the Agatha Christie books. They are still among my favorite stories, but it was hard not to be shocked at the way the word "foreigner" was often used by the characters and sometimes by the author herself to connote negative traits. It's a testament to the time the stories were written in but there is no doubt it was not a neutral word.
Today, when people make statements such as "There so many foreigners living in London these days, it barely looks like England", the word is usually not being used in a neutral sense. In this statement, the speaker was referring to native-born English people who happened to be of non-European ancestry. He clearly thought that "English" and "not primarily of English or white European ancestry" were mutually exclusive, and that for England to retain its character, the phenotype of its inhabitants is very important.
I don't use the word and have never needed to. I wouldn't automatically think a person is being insulting if they used it, but in many cases, context allows you to deduce it is not a neutral term.