Taichara recently posted a collection of tables for random potion characteristics. I really enjoyed them, so I created a modified set for my campaign and added an extra table for potential side effects. You can find the results as a one page PDF that can be printed out conveniently for a gaming binder.
These tables are valuable because they allow me to add a lot of detail to a campaign world with minimal effort. I don’t have to go through the rules and annotate the magic item entries potion by potion. With a set of tables like this, the first time PCs find, for example, a potion of heroism, you can roll up a description and from then on that’s what a potion of heroism looks like. You can describe it in the future and perceptive players will know what it is. Rolling on eight tables in the middle of play can be cumbersome, so I would recommend rolling up some sample potions beforehand and adding them to another single table, which would be the one you actually roll on during play.
This kind of procedure could be used generally for any domain which might need to be detailed on the fly. Some examples: spell components, NPC personalities, shops present in a village. Such tables are like unbound precompiled details. Nobody, not even the referee, knows what a potion of levitation looks like before one is discovered. I think that’s a good thing. It helps keep the setting fresh, and can lead to (but does not require) interesting referee improvisation. A while back, I discussed the difference between random tables used for preparation and random table used on the fly. The nature of this set of potion tables seems to lie somewhere between prep tables and play tables. It’s the unbound nature of the descriptions that are important, because beforehand you know you might need to describe a potion, but you don’t necessarily know which potions might need descriptions.
This is another method to allow players to engage with and learn about your campaign setting (and to make your setting richer in the process). Further, all this detail can be campaign-specific, so that every game is a unique process of discovery.