As I don't know if you have hard or soft water, and whether its acid or alkaline, and whether you have an under-gravel filter or not, I'm just going to have to wing this.
1. Mollies go well with guppies in my experience as they like similar conditions. Mollies like a little salt in their water. They can be a little large for a 20 gal tank, however. Platys are less fussy about the salt, but also go well, as would a pair of swordtails (although I'd check this out on the Livebearer section because I'd be concerned that the male swordtails might go after the guppies tails).
2. Danios go with everything but do like a lot of swimming space and I feel that 20 gals might be too small a space for a school. White Cloud Mountain Minnows like similar conditions, are very pretty, quite tough and quite a bit smaller, so would be ideal for your tank IMHO. White clouds would definitely cause no problems for the guppies but do tend to be in the same area of the tank, towards the top. Remember that minnows and danios are schooling fish and should ideally be in groups no lower than 6-8.
3. Many barbs are great beginner fish, particularly cherry barbs, which are also small. However, avoid tiger barbs like the plague unless you want a species tank as they are true to their name. Cherry barbs and gold barbs are not schooling fish and are great in small groups, as long as you only have one male.
4. Tetras can be nippy so you have to be careful when combining them with guppies. For a small tank, I'd recommend neons, black neons, cardinals, head-and-tail lights and other small tetras (check their adult size when buying). Tetras are schooling fish so need to be in groups of 6-8.
5. Also consider cory catfish and oto catfish as bottom feeders (both are schooling fish). A dwarf plec would be nice, either a bristlenosed or clown pleco which only grow to 3 or 4". As dither fish, rasboras are nice and easy, as are penguin fish.