IAP is (roughly) limited to unlocking functionality that exists in the app, offering a subscription of some sort, or offering new content.
You sort of could deal with something like OS X Mountain Lion as an IAP, but it would be incredibly ugly - you'd essentially have to ship both code bases, and "unlock" the new one based on whether or not they purchased the "upgrade".
IAP works pretty well if you have new features that are fairly discrete and are worth paying for individually. As a substitute for an actual upgrade, it is an ugly hack.
You sort of could deal with something like OS X Mountain Lion as an IAP, but it would be incredibly ugly - you'd essentially have to ship both code bases, and "unlock" the new one based on whether or not they purchased the "upgrade".
IAP works pretty well if you have new features that are fairly discrete and are worth paying for individually. As a substitute for an actual upgrade, it is an ugly hack.