Burning the flag is a form of expression. Speech doesn't just mean written words or oral words. It could be semaphore. And burning a flag is a symbol that expresses an idea - I hate the government, the government is unjust, whatever.
Certainly one cannot ban cross burning in the sanctity of his bedroom.