Well, I finally got my answer on the Steam forums (would you have expected that?).
The solution is simple: Source mods use the following line in their gameinfo.txt: 'icon "path/icon"'. Half-Life mods can have this same line in their liblist.gam and it will work, but there's one pitfall for them: there must be only a single space between icon and "path/icon", otherwise it won't work.
For the icon file the same rules apply to any mod, whether it's HL or Source: it must be a 16x16 .tga file.
Create-ivity - a game development blog