As the ASP.NET Web API framework becomes more and more popular, this discussion also gets more and more popular and becomes one of the endless discussions that exists among the .NET community. The simple reaction when most of the people try to understand what ASP.NET Web API does is "I can already do those things with ASP.NET MVC". Well, that’s not correct in my opinion because you make ASP.NET MVC do those things, it doesn’t do that out of the box.
There are several more reasons why ASP.NET Web API is a great choice for HTTP APIs and why we need a new framework for that along with ASP.NET MVC. Gleen Block has done a great job on explaining those in the following video.
Couldn’t be explained better I think.