mtalley and robbor,
The nitrifying bacteria (the ones that break down ammonia and nitrites into nitrates) will grow on any surface that has oxygenated water. By using an undergravel filter it keeps water moving through the whole gravel bed increasing the usable surface area for the bacteria to colonize. If there is no oxygen in the lower layers of gravel you can form anarobic bacteria (the black stinky stuff you sometimes step in on a silty lake bottom.

The nitrates (end product when the bacteria break down ammonia and nitrites) are less harmful to the fish but at high levels can cause weakened immunities in your fish making them more suseptable to infections. plants use the nitrates as fertilizer. but in a small system with high biomass a periodic water change of 50% is the best method of keeping nitrates in check.

My recommendation would be to use an undergravel filter, start with one inch of fish per ten gallons for the first month or two (average time for bacteria to colonize), then slowly add more fish. Get an aquarium test kit and monitor nitrate levels, this will tell you how often water changes are necessary. Get yourself an aquarium gravel vacuum (siphon tube with a lage diameter tube at the end)to perform your water changes because this will remove organic debris from your gravel bed. By the way the water you drain during the water changes/gravel vacing is great for your garden or other house plants.
just my 2 cents hope it helps.