How to create a migration for the main Craft DB? Let's say we add a section or other elements (field, category, tags, assets, etc) in the CP on our dev servers and want to roll that change out to a stage or production environment, is there a way to capture the changes we've made through the CP as a migration, or is there some other recommended way to reverse engineer that into a migration?

I have checked out the documentation on creating plugin migrations and a couple of questions here and here, but nothing addressing creating a migration for the craft DB itself.
You're looking for the answer to a complicated problem. :)

What you're thinking of I would describe as "content migrations" or "content model syncing".

There is currently nothing in Craft out-of-the-box that will do what you're looking for, although we've got some ideas on how we'd like to approach the sharing/syncing of content between environments/installations in the long term.

If you need something before then, you'll have to write a plugin that rolls its own solution.