It's really the same song and dance no matter what database-driven web application you're using:
1. Make a full backup of the site's files and the database
2. Download the .zip of the new version to your server (preferably you have command-line access for this)
3. Extract the zip file, then overlay its contents over the existing files. Again, this is 100 times easier via the command line. Use a recursive copy command to merge directories:
\cp -fr modx-new-version/* /path/to/existing/modx/html
4. Run the setup via your browser:
http://yoursite.com/setup and follow through with its steps.
To clarify a couple of your concerns:
1. this approach (although manual), can be less prone to error compared to updating via a web-request. Your web-server may not have the correct permissions to update all files and directories, and chaos can ensue if you try to let Apache/PHP run your updates for you.
2. The site's logic is 100% separated from the content in MODx: all content is in the database. Logic is all in files.
3. Database updates happen in the setup step above. But they can happen on the fly... Because the DB is abstracted via xPDO, new tables can be added as needed and they don't necessarily require a special setup step.