What are the differences between IaaS, PaaS, and SaaS cloud service models?

I’ve heard a lot about IaaS, PaaS, and SaaS cloud models, but what exactly sets them apart in terms of functionality and use cases? I know IaaS provides infrastructure, PaaS gives a platform for developers, and SaaS offers ready-to-use software, but how do these differences impact the way businesses build and deploy applications? For those who’ve worked with all three, when do you choose one over the others?