For the unfamiliar, StackOverflow is a programming question and answer service. There are dozens, if not hundreds, of these things on the Web - and most of them are lame.
What StackOverflow did differently was to design a service from the bottom up that was specifically tailored to the culture of software developers. Every feature in StackOverflow is designed to maximize productive participation by a very specific community.
Sounds pretty obvious, doesn't it? Yet consider that it took until this year for anybody to get the implementation right.
As Spolsky notes in his talk, StackOverflow as it now stands probably won't work for very many other communities.
For example, you might think that a StackOverflow for chemists might work well. Probably not. The problem is that chemists operate in a very different kind of cultural environment than software developers. Any system that ignored the difference would almost certainly fail. This isn't to say that there are no lessons to be learned - there are. But literal translation of the idea would ignore the very reason StackOverflow works in the first place.
The design of effective human-machine interfaces has pretty much been worked out. If you make the effort, almost everything you need to know has been written already.
Creating effective human-human interfaces through the Web, on the other hand, remains quite mysterious. It's far from clear why some work so much better than others. Few broadly-applicable principles have been articulated; we're still telling anecdotes.
But as far as anecdotes go, the StackOverflow case is well worth studying.