As a decorative painter I have heard of many who have painted over tiles with success. Clean tiles well, ammonia works great. If tiles are around tub area be sure they and grout are dry before painting. Apply primer that gives good adhesion to slick surfaces, Bin works great (ammonia based). Again, if tub or shower area I would use alkyd or oil based because they are more durable around water than latex. Finish with polyurathane finish, oil based preferred around the shower or tub. There are also products on the market to add to paint to help resist mildew. I am pondering doing the tiles around the jacuzzi in the master bath. The tiles are fine, just want a color change and cannot afford to spend the money on that right now. Here's what I plan to do to achieve the look of a neutral stone.
Clean and prime. I'm going to use latex products because generally there is no water getting on the tiles themselves. Base taupe and when dry, tape off the grout lines with painters tape (my tiles have 1/4"grout. Wet a sea sponge and apply a lighter value of taupe. Allow to dry and repeat sponging with another lighter value of taupe. There is no need to buy three cans of color, just add more white to lighten the original basecoat. Pull off tape and these are your grout lines. Varnish with Flect waterbased varnish, I'll probably opt for satin. If you are just doing walls, this method is a solution that will last for a long time and for tub and shower it is a great temporary solution. Clean with a mild cleaner and if necessary nothing harsher than a soft scrub, no abrasives. Once you have the surface primed the possibilities are endless for a custom look. You can do any faux finish, add a stencil for a border or individual blocks, paint murals,etc,etc!!!!