I think distribution is the key factor, but maybe not the kind of distribution you mean. Desktop apps, web apps, iPhone apps, whatever -- getting them to the customer is so cheap it might as well be free.
The real question is the distribution channel and how that interacts with your business model. Web apps and iPhone apps both have amazing distribution channels: Google and the App Store. However, the App Store is really only amazing for the top sliver of the apps, and the rest get dregs. You do not have to be one of the largest sites on the Internet to make fairly decent amounts of money on Google. (Additionally, I strongly suspect that even if one were to look at only the head of the distribution, traditional software distributed on the web would stomp iPhone apps on pretty much any metric with the possible exception of "dollars earned per programmer hour invested".)
Now desktop apps, on the other hand, desktop apps have nearly nothing to offer a developer that a web app can't do better. They can be distributed over the Internet for cheap! But so can a web app. You can get people to download them... but you can get people to sign up for a web app, easier. You can get people to pay for them... but you can get people to pay for a web app, easier. You can push content updates over the tubes, you can collect usage statistics, you can leverage OSS, you can... but you can do it all easier on web apps.
Which is a shame... I liked desktop apps.