You aren't going to change him by saying something about it. I would either learn to get over his intoleration, or forget you know him. As a tolerant person you can only lead by example. When you face intoleration with intoleration it produces a highly explosive cloud of tension amongst friends. So you have to remember that it is not your problem. It is his. And if it becomes your problem, i.e. your diverse friends not wanting to hang out with you anymore, then you choose to be around like-minded individuals and there is nothing wrong with that. Beating the guy up would do nothing, verbally berating him would do nothing. Chances are he'll slowly realize that his off-color remarks are not getting any attention, negative or positive, and he'll give it a rest. My guess is that he isn't really a "bigot" he's just used to getting a reaction out of throwing controversial slang around. If this is the case, then take the sword out of his hand by ignoring them. Toleration is a bitch. You have to tolerate intolerance and lead by example. Its the only way to spread it.
...at least in my experience,
Good Luck! I bet he'll come around, and if he doesn't, you'll easily find other friends, he won't.