Staining concrete is a way of changing the concrete's color without adding a thick layer of concrete paint, which doesn't last as long, and can get scratched or nicked off the wall. The only true type of concrete staining is acid staining, which seeps into the concrete's pores to actually become a part of the concrete surface. You can restain concrete if it's already been stained, but it won't be as rich of a color, as it may not take in all areas of the concrete. The color of the layered stain will be different than the swatch you see for stain on a naked concrete base.

...
Staining can give boring concrete floors a more interesting appearance.

Sealers

Acrylic sealers are sometimes referred to as stains. These are not the same as acid stains for concrete. You cannot acid stain concrete that has an acrylic sealer or any other type of sealer. Remove the sealer with a solvent before attempting to stain the surface. Use a caustic concrete stripper to remove all of the dirt, oil and acrylic residue before attempting to stain the concrete. Remove old acid stain with a concrete stripper if you want a bare base.

Cleaning

Concrete must be properly prepared before staining to make sure the stain soaks into the concrete and becomes a part of the surface. Once you've stripped the surface to make sure it doesn't have any paint you must remove the stripper residue so it doesn't interact with the stain. Clean the surface thoroughly with trisodium phosphate and water. Use a push broom to brush off the stripper residue. Rinse the concrete and dry it thoroughly for several days.

Applying Stain

Protect areas you don't want to stain by using painter's tape. Spray the acid stain onto the concrete. Let it sit for several minutes before brushing it onto the concrete with a push broom. Let the stain sit to take a hold on the concrete. The longer it sits, the darker it will be. Neutralize the stain with a mixture of ammonia and water once it reaches a color you like.

Sealing

Always seal a concrete surface after staining it. This will help the stain last longer and look better by protecting the concrete from scratches and nicks. Use a clear sealer and apply it with a paint roller. Use at least two coats of sealer, and let the sealer dry completely between coats.