Any soap will work. No More Tears is excellent, dish soap is even better, but you have to me more careful in rinsing your mask to avoid hurting your eyes. There are a few steps you can follow to get better results.
1. Start with a dry mask.
2. Apply your soap early, the night before is great. Two weeks before your next dive is not too early. Let it dry on the mask; don't rinse it until just before you get in the water.
3. Don't mix your shampoo/dish soap with water, apply it full strength.
4. Don't use too much, a light coating works best.
If you're on a boat that has a rinse bucket, don't slosh your mask in the bucket. Dip water out of the bucket, rinse your mask and don't let the used rinse water drop back into the bucket. A rinse bucket should have clean water, it should not have defog or soap. Once the first Neanderthal sloshes his mask in the rinse bucket, it is no longer suitable as a rinse bucket.