I challenge my prejudices by thinking about things from a different point of view, "How would I feel if I have certain qualities which I have absolutely no control over and others would discriminate me, and think less of me because of it (eg. homosexuality, race, gender, natural appearance)" That pretty stopped any discrimination I might have. As I am also very comfortable with my sexuality (hetero) and as the result I do not fear homosexuality.
While I am by no chance the nicest or friendliest person around, I believe that people should be treated with respect and dignity, regardless of whatever qualities they have that might be different to mine.
Whatever prejudices a person have, he or she should be aware that nobody could choose which race they could be, nor could they choose their sexual preference. You yourself were too subject to the randomness of fate and complex genetics- The straight person who discriminates against gay people could have been born gay as well.
Purposely treating people badly merely because of these uncontrollable surface qualities shows a lack of intelligence, education and compassion. The modern, educated person should try not be clouded by prejudice, but rather look at people's real characters underneath their skin.
The only discrimination one should have imo is that towards evil people- murderers, rapists, etc