In the design patterns arena MVVM is your best bet I'd say.
Try reading this:
http://stackoverflow.com/questions/725171/mvvm-questions-viewmodel-view-relationship-and-validation
Also:
http://stackoverflow.com/questions/1876274/the-model-in-mvvm-business-object-or-something-else
http://stackoverflow.com/questions/1521331/what-makes-mvvm-uniquely-suited-to-wpf
http://stackoverflow.com/questions/926622/mvvm-icommand-alternative
http://stackoverflow.com/questions/823992/what-are-the-biggest-pain-points-with-the-viewmodel-pattern
My experience with MVVM in practice is that it's a bit like the blind man and the elephant. Everyone says it is slightly different, and different solutions called MVVM are going to look radically different because they will be warped by the performance requirements and structure of your application.
The origins of MVVM are often claimed to be WPF and Silverlight.
In my view MVVM is an improvement on MVC, but possibly well designed MVP will outdo it.
For the best performance in general use MVP but MVVM I would expect to result in code that is nearly as fast and far easier to read and change.
Depending on what your app does, using a model at all may be overkill.
EDIT
Added "in general" to "for the best performance"...