In terms of specific reasons for considering web forms for new projects:
1) If you use SharePoint. Today, SharePoint sites more naturally integrate Web Parts / Web Parts into them. The SharePoint team would like to add MVC support in the future, but if your site / solution integrates with SharePoint today or a new version is released, you will find Web Forms easier to do this.
2) If you are creating an application in which an existing server control or a set of server controls can provide more functionality. This is true for many reporting scenarios (where you can use chart controls), as well as data editing scenarios using grids (where you can use data controls). There is also a rich set of server-side controls that have built-in AJAX features that many developers find really useful for common scripts.
3) When you create an application (usually based on an intranet), where you need to support older browsers or have strict accessibility requirements that exclude the modern JavaScript framework, and therefore must host a lot of user interface logic on the server. If you donโt care about SEO (because itโs an intranet application) and donโt care about full control over your HTML, then using controls with built-in functionality can provide performance.
In terms of specific reasons for considering MVC for new projects:
1) If you are creating a public website where SEO, semantic URL / HTML and full control over HTML are important. Although ASP.NET 4 provides many new features for web forms to enable this, MVC still provides more control.
2) If you need to use the TDD workflow and / or easily unit test your application. Although you can use the MVP template with web forms, MVC provides a basic approach that naturally supports this.
3) If you want to create a heavy application on the AJAX side, general control over the HTML / URLs provided by MVC can be an advantage. You can still accomplish this with web forms (especially with ASP.NET 4), but if you want MVC client-side overall JS control to be probably more attractive.
4) If you want to customize / extend almost every level of the web framework, ASP.NET MVC provides the necessary hooks for this. If you want a different viewing mechanism, integrate the IOC container, etc. - then MVC provides some nice hooks.
From the comments section:
http://weblogs.asp.net/scottgu/archive/2010/01/24/about-technical-debates-both-in-general-and-regarding-asp-net-web-forms-and-asp-net- mvc-in-particular.aspx