Grout all the joints except those that you need to allow for expansion joints (see Setting Tile Floors). These would be along fixtures, between the floor and walls, or joints in corners in between walls. These get sealed with caulk later.
After the grout has had a few days to harden, you should caulk using a clear tub/shower caulk or one in a color that matches the grout.
Caulk in the areas that you allowed for your expansion joints and over joints that may crack because of movement. These areas are between floor tile and a cabinet toekick; between floor or wall tile and a bathtub or shower; between floor and wall tile; and at the inside corner where two walls meet.
Fill the joints completely then smooth them out with a damp rag or your finger. Also caulk around plumbing valves, sinks and faucets to seal them from water penetration.
Sealing Tile and Grout
There are two different ways to "seal" tile. You can seal the grout joints and you can seal the tile itself. Which you need to do just depends on the type of tile you have. There are different products for each job.
Your basic glazed ceramic tile will only require the grout joints to be sealed. This will make them more water and mildew resistant, and help keep dirt out of the joints. Most manufacturers suggest you wait a couple of weeks before doing this so the grout has a chance to thoroughly set.
Apply a silicone or water-based grout sealer to the joints. As long as the tile is glazed it's ok if you get some sealer on the tile surface, but you'll need to wipe it off before it dries.
TIP: Grouting porous tiles like slate, marble or terra cotta may leave grout in the tile causing it to look foggy and dull. To prevent this, seal the tile before you install it with either a top-coat or a pre-sealer. This will keep the grout from penetrating in the pores of the tile.