Tags are user-defined labels than can be assigned to messages in order to categorize them and retrieve them later on. A message can be marked with several tags simultaneously (that's an advantage over traditional mail folders). Tags can also be organized in a hierarchical tree-like structure.
The command opens a non-modal dialog window as shown in the snapshot below:

Tags editor window
Tags can be renamed in place by double-clicking on their name or pressing F2 on a selected entry or pressing the "Edit" button.
To create a new tag a level below another in the hierarchy, the "New" button must be used when the parent tag is selected. Entire branches or individual entries can be moved along the hierarchy by using "Drag&Drop". The branch must be dropped to the parent tag, or the special (Root) entry for a top-level tag.
The fact that a tag is a branch (a parent of other tags) does not mean that it cannot be assigned to messages. For example, considering the branch "Mailing lists->debian-user", a user can decide to assign only the "debian-user" tags, or both "Mailing lists" and "debian-user" tags to messages that come from this list.
The tags panel should be open (using the command if necessary). At the bottom left of the window is a tree-like tags structure with checkboxes. Selected tags appear checked and in orange/red color, as shown in the pictures below:
When replying to a message, the default behavior is to assign to the reply
the same tags as the incoming message. This can be turned off with
the reply_copy_tags config entry.