This is why I am a fan of this blog. I've had this very same discussion in my head a while back.
What I don't like about the original definition of MVC is the link between the View and the Model (how a View "attaches" to a Model). I tend to, as Jeff did in the rest of the post, detach these two completely. Only then, I think, can your app be truly "skinnable."
The View should be "dumb": some meaningless (domain-meaningless) interface through which it receives data and barfs it on the screen and into which it can take user input and barf it to the Controller.
The Model is the domain model plus data access. Straightforward.
The Controller is...everything else. Receives the domain-meaningless barfed output of the View, fiddles with objects in the Model, determines the next View to be displayed and displays it, passing more data to the View via the domain-meaningless interface.
That way, whether your View is Windows Forms, ASP, whatever, all it needs to understand is how to render the domain-meaningless interface.