I'd consider instead what makes bad tags to help answer that question. Ideally, tags are ways to help connect people with questions, not a way to classify the context of a question. So, for example, ubuntu-desktop was a terrible tag. No one really wants to watch the ubuntu-desktop tag. Yes ultimately questions tagged about this revolve around the ubuntu-desktop, but it's nothing pertinent to the content of the question being asked. It's simply supporting information.
In addition, the bug
, crash
, and error
tags are horrible in that they're describing the context of the post, but no human will ever really want to follow the bug
tag for one of two reasons. One, we're not a bug tracker. Two, it doesn't help convey any real meaning. So, the fact that you're saying it's a crash means nothing. The context of why you're asking the question isn't as important as to what you're having problems with.
However, things like specific software being used, wine, php, juju, ubuntu-one make more sense as there's a chance people with knowledge of that software will follow. There are also a few additional tags, like application-development which connect a subject matter (not a physical piece of software) with people who know and specifically work on application development.
Tagging isn't an easy thing, which is why it has a high reputation entry level for creating a new tag. If you're uncertain if a tag is good or not always feel free to post on meta. It's better to figure out early on if a tag is a good idea before it becomes an unruly beast