Best practice two domains on one codebase and database
It really depends on what you need to do with the Blog vs. the regular site. For Flocknote, we decided to use www.flocknote.com/blog for the blog (so it would be easy to maintain as part of the rest of the website), but also have blog.flocknote.com redirect to the /blog URL (we set that up through a simple .htaccess rule, but you could also set up the redirect through your DNS provider).

If you really don't want the blog running within the same interface/site as the main site, but still want it running on Drupal, you can do that with one of the methods you mention. Just install another drupal site at blog.example.com using a database prefix (see Sharing a single database across multiple sites). Domain Access is a great solution if you plan on setting up more than a few subdomains on the same codebase, but it's overkill if you just want to run a blog. subdomain.

Or, if you want to set up another database, you could create a folder blog.example.com in the sites folder, point the blog subdomain/virtualhost to the same directory as the main site, and then use the separate database when installing Drupal.