Themes have a couple of big advantages over Master Pages:
- Any type of site will let you change the theme.
- They style the Site Admin pages too.
…but there are some pain points too:
- You can’t apply a Theme to a site and all subsites – well, not unless you write you own code to apply them programmically, or do something like extend STSADM.
- You have to use feature stapling to automatically apply a Theme on site creation.
It’s certainly worth considering how your theme will be applied up front – although you could using the Alternate CSS url to ‘apply’ your theme. Personally, I think I like the idea of using a Feature.