You can use the tag_counts on the model class to retrieve a list of tags and their individual count.
Example with User model with default "skill" scope (courtesy of the documentation).
User.skill_counts # => [<Tag name="joking" count=2>,<Tag name="clowning" count=1>...]
You may also use tag_counts_on(scope, options)
which is basically the same.
Also, there is a RailsCast on this topic, explaning this gem:
EDIT after question edition:
The list you have with Item.tag_counts
is a list of tags having a count
attribute.
I am not sure they are already sorted but you can sort them by this attribute like this:
tags = Item.tag_counts.sort_by {|tag| tag.count}
EDIT for Final Answer Purposes
Or the Rails 3 version of the above query:
tags = Item.tag_counts.order(:count)