What's the preferred method of creating different page templates
This should by there by default.

For example, the body classes on my test site look like this for a simplenews node:

&lt;body class="html not-front logged-in one-sidebar sidebar-first page-node page-node- page-node-90 node-type-simplenews toolbar toolbar-drawer i18n-en" &gt;


As you can see, there is node-type-simplenews, among many other things.

Those classes are defined in template_preprocess_html() and are using in html.tpl.php (not page.tpl.php, unless you've overriden that. If so, you need to duplicate the logic in that function for your page.tpl.php.