To remove stain from concrete I use Heavy Duty Paint Stripper from Prosoco. It is very hard to work with. you apply it with a trowel, allow it to sit for hours (in the shade), then scrape it off and put it back in the container. When you have it removed you most acid wash the area to neutralized the stripper. Be careful, the stripper has a pH above 13 and will burn. I know.
For a rust stain in concrete or natural stone use a rust stain remover. Prosoco makes a very good one for severe rust stains. Bridgepoint's "T-Rust" is very good for mild stains. You can find "T-Rust" at a janitorail store.
For oil stains in concrete or stone use a poultice of D. Earth and a clean solvent that is closely related to the staining agent. I like naptha. You might find pre-mixed poultices at Home Depot in teh Tile isle.