At least for CM9 (nightlies, rc's and stables included), you can just install the image on top of a previous image (and yes, it is officially supported). When it boots up, wiping the dalvik-cache and other maintenance tasks are done automatically. The one issue with this is you still need to manually load the zip and flash it, which can be a chore for some users.
Besides allowing easy updating, an inbuilt update manager should allow you to download deltas of the system, so you don't have to download a new 100MB image everytime you update.