The cloud has been overhyped so much, that the hosting models has become somewhat vague. A lot of the marketing hype has got some IT professionals confused about the differences on the hosting models. Especially the difference between IaaS and PaaS.
The hosting model terminology could also be applied universally to non-public data centers too.
Let us start with Software as a Service (SaaS) - the entire software stack is managed by the service provider, and there is nothing else required for the first party to make the software happily tick-tock. Good example is your Gmail, Outlook.com, Hotmail, and so forth.
Platform as a Service (PaaS), the service provider will configure the entire stack so that all you need to manage is the final software (Web Site files) and the data for the software. All that a first party needs to do is bring his software and deploy. As easy as that! An everyday example is asking a Database Administrator to create you a database and then you develop the tables and stored procedures upon the database.
Infrastructure as a Service (IaaS) means that the first party is responsible for every moving component on the server - from the operating system, to the runtime, and the data and application layers. This would be a typical virtual machine provided by any service provider. The service provider just needs to ensure that power, networking, and the necessary abstraction virtualization layers has been provided for.
On premises means that the first party is responsible for everything, including the infrastructure that provides power to the server rack. It is up to the first party ensure those services are available, though they might outsource those functions. A good example in the everyday world: just like how you are responsible for maintaining your assets.