Here's a How to,some links that might help you understand better and get started: https://msdn.microsoft.com/en-us/library/office/fp142381.aspx and https://msdn.microsoft.com/EN-US/library/office/fp179923.aspx
And to better answer the question, provider hosted apps are applications that run in a server that is external to SharePoint's. It has its own infrastructure and the Provider is responsible for keeping it running. They allow you to use Server Side code and uses the .NET CSOM (not the Microsoft.SharePoint.dll [technically you can host a Provider hosted app in the same server as sharepoint with an app pool that has the security requirements to access SharePoint's server side components {but you should probably avoid doing this}]
Compared to SharePoint Hosted Apps, they are much more powerful as they can leverage resources the a Client-Side only app simply cannot use.
In an on premises environment, you also have the alternative of developing High Trust Provider Hosted Apps, this model allows the App to tell SharePoint WHO the app is acting as and can effectively Impersonate users and do things that the app or the user running the app does not have permission to do (thus the name High Trust).
A Provider Hosted app can still have it's SharePoint Hosted counterpart, earning itself an AppWeb and running client side code that has support from SharePoint like the ListView Controls and owning content that are "isolated" from the rest of the site collection.
Hope I've described this clearly, feel free to point out htings that might've come out confusing.