I believe that cities and towns should have the right to reject for-profit businesses they don't deem a positive influence in the community, but it should always come down to a vote. If a city doesn't want a casino built, they should have that right. The issue comes becomes "more interesting" when it's something like bigotry, but I still feel it should be up to the community. I'd be far more interested in a community banning all fast food restaurants rather than just the bigot ones, though. The exception to this should be that there be no discrimination to the well being people or a group in a community; there shouldn't be towns banning abortion clinics, as that potentially affects the health and well being of women, but I'm okay with towns banning gay bathhouses. It is a slippery slope though; I don't disagree.
I'm sure I haven't thought out all the different parts of this, but yeah. It would be a lot easier if everyone just stopped hating everyone.