I grow african violets and I put cedarcide granules , just a small amount on top of my potting soil . I have over 52 of these plants in the house plus cuttings. I also have orchids, bromeliads and air plants and Ivy. All of them have cedarcide granules on top of the dirt , anywhere from a tablespoon to 3 depending on size of pot. These seems to help . I bought the huge bucket from these people long time ago over a couple of yrs I guess and still have plenty and it last. 10 lb bucket. I keep it sealed. I will refresh the plants and add a little more to the top of the soil every so many months. Now every once in a while I will see a gnat and kill it, but not often. http://www.cedarcide.com/productguide.asp
On my outdoor pot plants I buy Cedar mulch from walmart, put some at the bottom of the pot , then plant what ever plant in the pot and then add some more cedar mulch at the time. This helps in keeping out ants and other insects and also helps with not having to water so often.
On my potting soil I use the EXpert potting soil , its a little cheaper , not much , but on the african violets , all I can find is the Miracle gro. I may start making my own but thats not cheap either by the time you buy everything. lol