Tags should only be created if there is a clear need for them, such as if it represents a new concept that has not been asked on the site before, but is still on-topic for the site. For example, on Stack Overflow, if a new programming language has been created and is in wide use, but no one has asked any questions about it, a new tag should be created for it.
Don't create tags just for the sake of creating tags. You should use existing tags as much as possible, because people follow those existing tags, and this increases the likelihood of getting a good answer. Don't create tags that are meta tags, or tags that describe the nature of the question rather than its topic. Don't create tags that are overly broad or ambiguous, or cannot be used as the sole tag on any question. Finally, don't create tags if the same tag has existed before, but was removed due to a community decision.
Don't create tags just for the sake of creating tags. You should use existing tags as much as possible, because people follow those existing tags, and this increases the likelihood of getting a good answer.
Don't create tags that are meta tags, or tags that describe the nature of the question rather than its topic. Examples include homework-problem and hard-question.
Don't create tags that are overly broad or ambiguous or cannot be used as the sole tag on any question. Examples include first-edition or version-2.0.
Finally, don't create a tag if it violates any guidance on tag usage specific to the site, or goes against consensus established on the site's per-site meta (for instance, if the tag was removed after a community burninate discussion).
To create a tag, one must apply it to an existing question or a new question they're about to post. Any user with the Create Tags privilege (150 on beta and non-designed sites with "beta" requirements, 300 on most designed sites with "full" requirements, 500 on Meta Stack Exchange, 1000 on Mathematics and Physics, and 1500 on Stack Overflow) may add new tags to any question at will1.