If you are a plugin or theme developer then providing update to clients should be the main priority. White Shadow wrote a awesome library that helps plugin and theme developers to notify users about the update.
Implementing those library with your themes or plugins are really easy and quick. Author have examples and quick start guide which is very easy to follow. Just follow the instruction and you are ready to go! And cool thing is those library is licensed under the GPL and is distributed free of charge. If you find it useful, consider making a donation.
Update system for self hosted themes
I have personally used this one and it is really good and awesome. Using this library is easy you just have to add a piece of code to your functions.php file and host the theme.zip and a JSON file containing the new version numbers and other basic info somewhere in web publicly accessible.
Update system for self hosted plugins
Using plugin update library is same as the theme update library. You have to add the library to plugin file and host the plugin.zip and a JSON file containing the new version numbers and other basic info of the plugin somewhere in web publicly accessible.