edit: no, I guess that does not work per below.
It works like this: developer releases the app for, say, $10. People buy it and use the basic features for a while. So far there's no upgrades available. Developer codes up a premium feature and updates the app in the store. Existing users can use the app as-is with the basic features that came with the $10 price tag. Existing users can also make an in-app-purchase for, say, $5 that unlocks the premium feature. When new users download the app for $10 they just get the basic features. Since another "version" of the app is available the new users can just buy the premium features if they so choose.
Fast forward to version 5 of the app. Now there's 4 upgrades available via in-app-purchase. However users are only prompted to purchase the next version based on their in-app-purchase history.
I don't think there's a problem for new users who purchase the updated app.
In-app purchases are left as orthogonal to these upgrades. The developer could perhaps be allowed to continue to push out bug fixes for older versions, or even old version DLC.
If you store the version on the device, the user would simply have to delete the app (which wipes all data the app has stored on the device) and re-download from the app store (which is free) to get the latest version. It's not going to take long for users to notice that and then you'll never sell an upgrade again.
So you'd need to move away from a straight app and also create a server component. But to store it on the server, you need something that uniquely identifies the user.
You can't get access to the UDID any more (and besides, people would catch on when upgrading their phone got them new version of everything for free).
You can't generate some kind of GUID, because that has the same problem as just tracking it on the device. Upgrades are just a reinstall away.
And you can't force them to sign up for your site on first launch: App Store reviewers won't approve apps that make users register solely to store information about them. So you'd need to push content through the site, at which point you've moved well beyond the purview of most apps, and you ought to just give up the game and sell access to the content itself.
This leaves the problem that v>1 first time buyers will have to IAP something immediately after buying the app, kind of pushes you to have a free trial mode.
Hopefully apple will eventually introduce time-limited free trials and upgrade options. If their history with iOS and Mac versioning is any hint, the current simple system is not a religious thing for them and they will listen if they see enough negative feedback. Which we should provide.