Obama did the right thing. It really was a no-brainer decision, and for once, I agree with him. His speech lines it all out very well.
McChrystal never would have tolerated such nonsense from his own subordinates; there is no reason to require Obama to tolerate it from McChrystal and his staff.
However, McChrystal's comments, and those of his staff, were quite accurate. Unfortunately, '... truth is no defense ...' when it comes to insubordination. We find that in Article 89 of the Uniform Code of Military Justice, and though that specifically deals with a 'commissioned officer' - which Obama is not - McChrystal is a general and Obama is the president. The concept applies in spades.
So now the question is, what's The One going to do about the 'issues' behind the comments?