A tag is a nickname for a particular revision. The typical use is to mark a release of the software so you can easily refer to it later.
Tags are placed using the tag command:
bzr tag project-0.10
This places a tag on the head revision of the branch for the current directory. You can override this with the --revision and --directory options.
Tag names can be given to any command that takes a -r option. To see what's changed since a tagged revision:
bzr diff -r tag:project-0.10 bzr log -r tag:project-0.10..
(The .. says to show messages for all revisions from that point on.)
Tags are stored in the branch, and are propagated when it is pushed, pulled or merged.
Use the bzr tags command to see the tags in a branch and the revisions they refer to.