Seu problema:
Infelizmente, o rigor do Postgres quebra essa consulta porque exige que todos os campos sejam especificados na cláusula group by.
Agora, isso mudou um pouco com o PostgreSQL 9.1 (citando as notas de lançamento do 9.1):
Permitir nãoGROUP BY
colunas na lista de destino da consulta quando a chave primária é especificada noGROUP BY
cláusula (Peter Eisentraut)
Além disso, a consulta básica que você descreve nem se depara com isso:
Mostrar uma lista das 5 tags mais usadas, junto com os horários em que foram marcadas.
SELECT tag_id, count(*) AS times
FROM taggings
GROUP BY tag_id
ORDER BY times DESC
LIMIT 5;
Funciona em qualquer caso.