I think it depends on the purpose, but I feel "queer" is the slightly-offensive but not quite way to say it.
personally, here are my thoughts:
homoloveual: scientific term
gay: word to use in friendly jokes
homo: word to use in friendly jokes / insult
queer: insult