Those who believe homosexuality is a sin have a very pithy answer to the question why: because the Bible says so. It is a maddeningly over-simplistic answer. A clever retort with no depth that willfully obscures a host of important issues and questions, and intentionally ignores ambiguity in scripture. Nevertheless it is their constant refrain so it must be addressed.
All of the relevant passages of scripture have been pored over again and again by scholars in obsessive detail. I will not rehash that work here, nor pass judgment on it. You can form your own opinion about what various verses of scripture do or do not mean in relation to homosexuality. I will comment here in a more general fashion about the use of the Bible in moral reasoning.
The Bible doesn't "say" anything. The Bible has no will. It is an inanimate object. Everything we take from the Bible we do by effort and interpretation. We do not just passively sit and receive Biblical wisdom, we actively create meaning in our own minds by engaging the text. Furthermore different people frequently come to different interpretations of the same texts (even with access to all the same information), thus it is never adequate to say "the Bible says," but rather you should say "I understand this passage to mean..."
It is a fallacy to say "the Bible says" for another reason, which is that "the Bible" is not homogeneous. It is not one text, but a collection of many texts written over a long period of time by many different authors. Individual texts even show signs of composite authorship or redaction. There is no voice in scripture which can speak for all of the others. We are always only dealing with an individual passage and what we interpret it to mean. This is not to say that there is no relationship between the texts, but only to say that it is a mistake to leap from "this verse in Leviticus says..." to "the Bible says..."
There is still another reason that "the Bible says" is a poor basis for an argument: it is an appeal to authority that obscures the basis of that authority. What reason does anyone have for accepting anything "the Bible says" as authoritative? Because it is inspired by God? How do we know it is inspired by God? Oh, that's right - because "the Bible says". It is circular reasoning. In fact, there is no good reason to accept the Bible as authoritative except on the basis of another, higher, authority: either personal revelation (in which case it is actually our own experience we are taking as authoritative), or the testimony of the Church (in which case it is actually the experience of others we are taking as authoritative). No matter which way you go you find that the basis of the Bible's authority lies in human experience - we experience the Bible either directly or indirectly to be "inspired" by God.
I have not experienced a personal revelation about the trustworthiness of the Bible, but I am willing to trust the Church on this one. However, if it is the Church who has said the Bible is authoritative in the first place, then the Church is in a position to decide how the Bible is used and how it should be interpreted. This is precisely what we have done in the past, deciding that the inclusive ministry of Christ outweighed the pastoral command of Paul to prevent women from speaking in the assembly. It is precisely what is at stake now in the Church's debate about whether or not to ordain homosexuals. It is not that one side is sticking with the Bible and the other is abandoning it (an offensive lie). Rather it is that many in the Church feel that we are within our rights as the Church to understand the inclusive ministry of Christ to outweigh the other considerations against ordaining homosexuals.
In coming to the conclusion that homosexuality is (or is not) a sin, a person must do some moral reasoning. Though it does not appear that way, there is a kind of moral reasoning behind the insistence that "the Bible says" homosexuality is a sin. It is called divine command ethics. It is a type of deontology. Simply put, a deontologist says there are rules that must be followed in all times, in all places, by all people. Being good consists of following these rules. The rules are good because they come from a good authority (in this case a divine command). Deontology falls apart in one of two ways - either the authority can be shown to be unreliable, or the rules themselves can be criticized for their effects until even a deontologist must admit that the rule seems not to be "good" by any reasonable definition.
Allow me to say a few good things about divine command deontology. First of all, no one who believes in God (and believes God is good), can object that following God's commands is a good thing. I DO believe there are some rare examples of universal rules that are reliably correct. For example - thou shalt not murder. Good universal rules tend to be narrow in scope or abstract enough to have different meanings in different situations, for example: Love your neighbor as yourself.
However, deontology in general is weak for its inability to say very many specific things without running into problems. Too many rules do in fact require exceptions. Deontology does not consider things like motive, circumstances, or consequences. Either you broke the rule or you didn't - there are no mitigating factors. Divine command deontology is further weakened by the dubiousness of its authority claim. How can you prove that the rule you have described is, in fact, a divine command?
The Bible, especially, is a notoriously poor source of authority for supporting divine command deontology. The Bible is not a rule book, nor is it a treatise of moral principles. It is rather a collection of many genres of writing. How does one translate poetry into a cohesive moral principle? How does one use history or allegory as a source of authority for alleging a divine command? Most crucially, the Bible shows evidence of internal moral development. The Bible itself doesn't always rely on a deontological approach to ethics. The Bible doesn't always discern what is good on the basis of a divine command.
In fact, as I read scripture, the climactic achievement in moral reasoning in the Bible is the shift toward teleological or virtue based ethical modes. The principle of love is lifted up in the New Testament as the means to discern what is in line with God's will. By being concerned that your motivation is loving, and the consequences are consistent with that love you can be assured that you are already fulfilling all of God's commands. This teleological approach is also seen in the emphasis on "fruits of the Spirit". A virtue ethics approach is exemplified by Paul's insistence that if you develop the virtue of charity in yourself you will automatically fulfill the law.
In summary, using the phrase "the Bible says" as your first and last defence for why homosexuality is a sin must ultimately fail. Firstly, interpretive problems abound that any blanket statement of that sort glosses over far too easily. Secondly, this approach obscures the source of the Bible's authority which is principally in the testimony of the Church, meaning the Church is authorized to change her opinion on the meaning of passages of scripture (and frequently has). Thirdly, it is knowingly or unknowingly a form of divine command deontology which has severe limits as a mode of moral reasoning and is not even the best example of Biblical morality.
Ultimately I think all of these reasons point to the same underlying reality which is that nothing is as simple as "the Bible says." In calling homosexuality a sin you are making a moral judgment which means you must defend your moral reasoning and "the Bible says" is a very poor defense.