The Mobile App Management solution called Apperian EASE (Enterprise App Services Environment) is set up to do this. There are two ways in which the app can be updated:
(1) A native "App Catalog" runs on the user device. When updates are made, the administrator can decide if they want updates to be mandatory (immediate), optional, or be installed at a particular date/time. When the app update is required, the "App Catalog" will show a push notification badge.
(2) There is an EASE SDK in which the app can check with the server to see if a newer version is available. If it is, then another call allows the app to be "self updated".
In either case above, the updates are done via over-the-air (OTA) method, which does not require MDM.
Another alternative approach (other than DIY) is to use an MDM solution, but then all the users must be enrolled in MDM to receive the app updates.