To me, site definitions are a way to do customizations, whereas site template are a way to spread customizations. I say it much more eloquently in a Word file somewhere, but the general gist is definitions create, templates propagate.
Since you can't go back and update a site template and in turn affect all sites based of that site template, to me they are strickly for spreading your customizations, best use being role based changes. (I have a post half written I need to put on my blog about role based templates). But bascially, you identify a need, you tweak a site to meet that need (via lists or whatever), package up that solution and then propogate it to many sites in the form of a template.
If you need to adjust the branding or the look of a site, that needs to be done with site definitions, or better yet just with CSS and images.