There is ID3v1 and rudimentary ID3v2 support included as part of madplay, but my suggestion would be to use a real ID3 tag processing library if possible. ID3v1 tags aren't difficult to deal with, but ID3v2 tags are absurdly complex. You might be able to use madplay's current ID3v2 code as a base for something, but it's far from complete.
Eventually I would like to see a "wrapper" library for libmad that incorporates ID3 tag support and a simplified API, but I don't plan to add these to libmad itself.
pulling the id3 support out into a companion library should not be but so difficult, especially for id3v1. Not saying you have to do it it Rob, but these two fellows could certainly whip it up in a few days.