I agree with Jacob Sullum:
Let's say Gates did initially refuse to show his ID (an unsurprising response from an innocent man confronted by police in his own home). Let's say he immediately accused Crowley of racism, raised his voice, and behaved in a "tumultuous" fashion. Let's say he overreacted. So what? By Crowley's own account, he arrested Gates for dissing him. That's not a crime, or at least it shouldn't be. Instead of admitting that he "acted stupidly" (as Obama put it) in the heat of the moment by deciding to punish Gates for hurting his feelings, Crowley continues to defend his conduct, refusing to apologize.
Even if you accept Crowley's version of events, he acted unethically. Let's say that Gates is an obnoxious race-baiter. Let's say that he wrongfully attributed racist motives to Crowley. It doesn't matter. He insulted another man, Crowley, in his own home. If Crowley didn't like to be spoken to that way, he could have left the property. Instead, he used his police power of arrest to settle a personal score and punish an uppity civilian.
It doesn't matter that (or if) Gates is a professional jackass, or acted as one in front of Crowley. You have a right to be a jackass on your own property. Anyone who doesn't like that can leave.
Really, do we want a society where police officers are free to arrest people who piss them off?
The authority given to police officers is an enormous one. An arrest, even if it never goes beyond just the actual arrest, can seriously screw up a person's life. At minimum, it's impairing that person's freedom of movement and activity for several hours without consent.
If I, as a civilian, decided that another person was a jackass and locked him in a closet for several hours, that would constitute a serious crime. Why should a similar decision and action by a police officer be treated any differently?
A police officer is given the sacred trust to enforce laws. He doesn't get to enforce vendettas.