For stains such as tea, coffee, soft drinks and other non-oily liquids, the best way to clean them is to get a clean white cloth and pour 20 percent peroxide combined with a few drops of ammonia. Place the cloth over the stain, cover it with plastic wrap and tape it down with masking tape. If you don't cover the cloth, you'll have to add more liquid later to keep the cloth damp. This should be left on the stain for anywhere from 1 hour to 2 days, depending on how long the stain has been there. The earlier you treat the stain, the less time it will take to get rid of it.
For oil stains, sprinkle the stained area with a fine powder. You can use corn starch or whiting powder for this process. After a few minutes, brush off the powder and apply it again. This time, let the powder sit for a day. When you are ready to remove the stain, you can either scrub it with a stiff brush and hot soapy water, or you can use a cloth with ammonia. Be sure to rinse and dry the marble when you're done.