Homo sexual is more respectful, because sometimes 'being gay' is used as an insult (Which it shouldn't).
Both
gay and
homosexual can be used for both sexes, and they mean mostly the same thing; the differences are subtle.
Probably because the word
lesbian exists as well, one is slightly more likely to refer to men when using the word
gay; but note that it is commonly used for women. When used as a noun,
gay seems to refer to men a bit more often than as an adjective, although it is still used to refer to both men and women. It rather depends on context. The word
homosexual seems to be completely gender-neutral.