In vSphere 5.1 "Tags" replace the old custom attributes to provide a way of adding metadata to vSphere objects. The "Tags" are organised into categories to "define how the tags can be applied to inventory objects". The easiest way to think of the difference is that custom attributes are "free text" and the tags are statically defined properties.
There is a wizard for converting custom attributes to tags, but it can get a bit confusing and is pretty poor - let me explain. We use four custom attributes in my current environment: CreatedBy, CreatedOn, Owner and ServiceType. CreatedBy contains the user ID of the person who created the VM, CreatedOn is the timestamp of when the VM was created, Owner is the Business Unit who own the server and ServiceType is the type of service - e.g. Active Directory, or SQL.