What I'd recommend are:
1. you could set your author and tag pages to be 'noindex,follow' - so search engines will still visit them, and follow the links through to the posts, but not actually index the potentially duplicate content on those pages
2. make sure that your category pages are just showing excerpts of your posts, instead of the actual full post.
3. determine your canonical url structure and stick with it
There's a really good blog post that covers this topic actually:
(Moz staff edit: see my answer below for resources that currently work -Dan)
Also - the Wordpress SEO plugin by Yoast is really good for helping to deal with these kinds of issues.