I spent some time this weekend, doing some R&D on the Model View Presenter pattern, to get myself up to speed so that I can get my team up to speed. Off-hand, I love this pattern. I can see the benefit from it already, just having done some very simple samples and tests with it. The largest benefit is of course, Unit Testing, as everyone out there has stated a thousand times. However, I see it as more than just unit testing enabling. It provides a high level of maintainability, portability, and can even help lead towards a Service Oriented Architecture (if you consider the Presenter and/or View to be the service contract).
I've found several good resources for learning the MVP pattern:
Web Client Software Factory - Model-View-Presenter and Page Workflow - Examples and Tutorials
Becoming Agile: Model View Presenter - is testing the presenter enough?
Jeffrey Palermo [C# MVP] : Trying out the Model-View-Presenter pattern - level 300
Jeffrey Palermo [C# MVP] : Martin Fowler evolves his Model-View-Presenter pattern - level 300
Model View Presenter with ASP.NET - The Code Project - ASP.NET
darron schall :: MVC vs. MVP
Design Patterns: Model View Presenter -- MSDN Magazine, August 2006
However, as soon as I start getting into it, I find out the MVP has officially been "retired" and split into 2 other patterns that vary slightly in design and significantly in practice. Jeffrey Palermo has an Execellent Post describing the differences and I would recommend reading his post to get a good understanding of why it's been split.
I think I'm well on my way to being able to implement this in my daily development. Now I just need to figure out how to do Dependency Injection with my data access layers, so I can unit test them. And then there's the whole paradigm shift of Test Driven Development... I understand the basics of how to create a unit test. I understand why we need to and the benefits of doing them... but it's massive shift in development paradigms and so far, i'm struggling to truely grasp Red, Green, Refactor.