This article is from the Aquaria: Plants FAQ, by multiple authors.
These are essentially the same question, though asking the second one
shows you are a serious plant person. You need to match the habits of
the fish with the plant. Big cichlids that like to dig should not be
kept in a tank with rooted plants, though floating (or ephiphytic)
plants are fine. Vegetarian fish should not be kept in a tank with
plants they like to eat, unless the plants grow faster than they
destroy them! Some algae-eating fish also turn out to be plant-eaters
too. In general, try and learn the habits of your fish before you buy
them and your plants, and be prepared to find out what works by
several trials.
Some fish that can be kept with virtually any plants: small tetras,
danios, rasboras, gouramis, discus, bettas, angelfish (Pterophylum),
rainbowfish, Corydorus catfish, livebearers, killifish, dwarf
cichlids, and in general most small fish.
 
Continue to: