I've been watching Jason Dolinger excellent demonstration of how he takes a "traditional" GUI approach in WPF and then refactor it to a Model-View-ViewModel (M-V-VM) implementation. M-V-VM seems like the dominating design pattern for WPF/Silverlight application and it fits very good together with data-binding, commands and Unity (or other dependency injection framework). It also makes the application easy to unit test and to design in Expression Design. This is a must see demonstration of good GUI design pattern, also valuable for Windows Forms developers.