ChatIcons adds item, spell, player class, and achievement icons to the chat frames next to player, item and spell links.
FAQ
Q: Why is the vertical alignment in the chatframes not exactly like it is in the example text?
A: I dunno. Just play with it until you find something you like.
Q: Sometimes it makes the fonts in my chat frame go all funny looking. What's up with that?
A: This is actually a Blizzard bug with embedded textures so all I can do is wait. The issue seems to be different depending on the font you use in your chat frame. I use a font other than the default in my own UI, and I don't have this issue. So you may want to try using a font addon to change the chat font if you have this issue (and it bothers you a lot).
Q: Why don't class icons appear in global channels and whispers?
A: ChatIcons only adds player icons to Party, Raid and Guild messages because the player's class is only reliably available in those contexts. I do not want to have inconsistent behavior in global channels and whispers when ChatIcons can place icons for the players it has seen and not for others. I also do not want to resort to hijacking Who queries to find out the class of people it doesn't know. Nor do I want to be keeping a record of what class everyone on the server plays.