Frank Cross writes, though in the course of making a separate point,
I was advising a conservative student arguing in a debate against gay marriage and suggested he say "gay" rather than "homosexual."
I have a simple suggestion: same-sex marriage. It's clear, descriptive, and does not unnecessarily distract listeners into thinking about subsets of the field. Many people who engage in same-sex marriage -- especially same-sex marriage among two women -- are bisexual, not homosexual; using the term "homosexual" may needlessly focus on the sexual orientation of the participants, rather than on the nature of the union. Likewise, using the term "gay" may needlessly lead listeners to think of male-male marriages to the exclusion of female-female ones.
Neither of the other terms is wrong. "Gay" is sometimes used to mean "gay or lesbian," "homosexual" is often used to mean "homosexuals or bisexuals, so long as the bisexuals are behaving in ways that reflect their homosexual rather than heterosexual attraction," and of course both "gay marriage" and "homosexual marriage" are generally used to mean "same-sex marriage." But they do risk needlessly making the listener think of something other than what you're talking about -- which is same-sex marriage, whether male-male or female-female. I don't condemn people who use them, but I think the more useful approach is to go with "same-sex marriage."
I will sometimes run the risk of offending some people, in order to fight what strike me as unsound attempts to buffalo people into not using certain words. But I see no such benefit in avoiding the descriptive and clear "same-sex marriage," which avoids needlessly focusing listeners on one or another subset of the behavior and its participants.