I am definitely not going to outright disagree with your comment. Apple has been notorious good at convincing developers to use the new APIs with each new OS X release. This is different from saying Apple doesn't support 10.4, the issue is that developers have been lured by something in 10.5 that makes supporting 10.4 more difficult.
This is kind of a double edged sword. Arguably, as an operating system developer they are in the business of providing new (better) developer tools with each iteration of the OS. The return on that investment is that developers use those new tools to make it necessary for consumers to buy that new OS (see your comment). The fact that they need recurring revenues means that they can either charge the developers, you or both. Right now apple runs the path of charging the consumer and gives away the developer tools (yes I know I'm ignoring the fact that they make money on the hardware as well). The point is, either your hardware is outdated (according to Apple) or you are unwilling to purchase a newer copy of OS X which will allow you to run the latest greatest apps. Also, while 10.4 is clearly not that old, it was first released about 4 years ago and hasn't had a minor point release in about 2 years. Developers only choose to maintain support for the older version of an operating system if there are users for it. If I had to take a guess I'd say people willing to pay for something still running 10.4 represent a very small majority.
The iPhone is a slightly different beast. With each new revision of the hardware they provide new features (3G, GPS, Compass, improved camera etc). However, they also continue to release new software updates for the various phones they release. Thus far the OS releases have been as much about user facing features as they have been about developer APIs. Since they have a recurring revenue model (by getting a slice of the AT&T monthly contract) they are able to subsidize the software development and can continue to make money from the app store by keeping as large an install base as possible. At some point they will see less value in supporting the old versions of the iPhone (because less people have them) and as a result they will choose not to support those devices with the new update to their operating system.
The question that remains to be seen is just how long they are actually willing to provide software updates to previous versions of the iPhone. Much like the primary OS X development, at some point the old phones simply won't be able to keep up with the OS upgrades or the cost to maintain support for them will overtake the profits that can be seen from the app store. At that point support will be dropped for those older phones. Fortunately the first two revisions had identical CPU and RAM specs, so they probably won't drop the original iPhone until they drop the current iPhone 3G. If I was being optimistic I'd say that we'll probably get another 3 years of OS upgrades for these devices. Though, I'd guess the differences between each upgrade will probably not be very substantial since with version 3.0 the vast majority of people's prayers have been answered.