Dwarf puffers are not good community fish, so unless you want only dwarf puffers i wouldn't do down that route.
A betta and a nice shoal of maybe 10 rummy nose tetras would work well. On top of this you could get a few bottom feeders such as cory cats, and get a pair of dwarf cichlids such as bolivian rams to give the lower/middle areas interest.
It depends what you want from your tank - apart from those you've listed, are there any other fish that have stuck out to you? Do you want a community with a few different types off fish, or a species tank?
20 gallons are nice sized tanks and you can establish a good community in one.