Efflorescence is actually a salt build up. It happens a lot in showers where water gets underneath the tile. Has to be removed with an acid, and difficult to remove on natural stones as the acid with etch a lot of stone. Efflorescence is usually cause by leaky shower pans, or bad installation. If the caulking is bad on an installation and water is getting in that crevice it can cause that as well.
Prevention - stop the water from getting underneath the tile. Sometimes it is just a really poor installation and it needs to be completely re-done. You can however tear out and replace the caulking. Pain in the rear tedious stuff sometimes, charge accordingly.
EDIT: On natural polished stones, you can normally have to re-polish the stone after removal, this will also remove any etching your acid cleaner made.