Tags are very much like tags in Git and Mercurial and label in Vault. You would use them to identity a group of files that are a part of a build or a release. The tag must be unique.
Stamps are very much like tags in other contexts in the internet. You would stamp a group of files as 'Stable', or 'Valid', much like we tag posts on this forum. Think of it as adding attributes to a set of files. More then one set of files can have the same stamp.
The simplest difference is that tags are unique, stamps are not.
Only one changeset can have a specific tag (such as
Multiple changesets can share the same stamp, however - you might have several branches in a
Stamps can also be applied to work items, whereas tags are specific to version control.