There was a very good thread recently on just this topic. A search would have found it, but
Here You Go.
I deal with this problem everyday in my work, and I have to say that none of the suggestions above have ever worked for me. Gnats will breed in any soil that is moistened. Starting with fresh soil will only delay their appearance. No cultural tricks seem to work either ( thick layers of sand, baking soil, etc. ).
I use a drench of the "Tree and Shrub Insect Control" from Bayer. Before you all collectively scream, this is the same compound that is in "Advantage" for dogs and cats; its very safe and has been widely tested in people, mammals, and even reptiles. You put it on the dog's neck and it goes into the body and kills any fleas who bite the dog. When you use the plant version, you drench the soil and gnats go away and don't come back. As a consequence, any insects that eat your plants will be stopped too. Simplest control you can get.
If you want to be organic about it, there is a new-ish thing called Spinosad, which can be used in the same way. I just can't find any info on if it might be a danger to reptiles. Understanding it's method of action, I feel its probably safe, but I have no evidence.
BTW, these products should not be used in any amphibian habitats.