I believe that since this is a matter of equality, something the United States was founded upon, the federal government should tell the states that they must legalize same sex marriage. Legalizing same sex marriage on their own is something that the Southern States would probably be very slow to do, as they were very slow to change in the Civil Rights Era.
If you don't give people the right to marry a member of the same sex, it violates the Civil Rights Act because it discriminates against people based on sexual orientation. People are people, not beings that you can deny rights to. What if people with black hair denied rights to people with blond hair simply because of hair color? That's the same as denying rights to a person because they like a different person than you.