Two other options, but these may be more time consuming, messy, or costly: 1) call a bath tub refinishing company (look in Yellow Pages, "Perma-Glaze" is one national franchise) -- they may be able to "refinish" your existing ceramic tile. I have had it done on walls, although I've never tried this on a floor, so I'm not sure how well it will hold up to traffic -- ask the refinisher. It's basically a high-tech spray-painting process but it turns out better than it sounds. Typically only takes a day, although you may not be able to walk on it for a couple days, and you'll have some sanding dust & paint odor to contend with. Not every expensive, and it retains the look of tile (although the grout lines will now be the same color as the tile). They have every color imaginable. You'll probably want the non-skid finish, which I think is a little more $$ than full gloss.
-- OR -- 2) lay new ceramic tile directly over the old tile. This isn't necessarily "best practice", professionals will cringe, and many DIY'ers here will certainly criticize this, but I have done it with complete success. The old tile must be in excellent physical condition, flat, no missing pieces, etc. Scuff sand the old tile, then use thinset to lay your new tile directly over the old, then of course grout as usual. You may have to fiddle with baseboards etc because of the additional height of the new tile. I think this will provide the best appearance and maintain resale value better than carpet or vinyl flooring.
I also have one small bathroom in my house where the previous owner put laminate flooring over the original ceramic tile. This must have been done 20+ years ago. It has held up just fine, although I don't like the look of the laminate. I'm currently peeling up the laminte so I can re-tile this floor.
Good luck, whatever you choose to do.