About a year ago, I prepared my concrete floors to be covered first with an overlay and then stained. My situation was a bit different, but I bet the prep needs to be about the same. You can read my blog post about the preparation we did on lauramakes.com.
For your situation, you will want to use a floor scraper to remove anything loose on the floor, like paint chips and the glue, or you won't get your paint or overlay to stick well. I found that wetting down the floor made the scraping go much faster.
You will definitely need to get the carpet glue up. I was interested in non-toxic products, so I looked into two soy based strippers. I tested Soy It, and it definitely worked for paint and is supposedly good for adhesives too.
After you get up the glue, you will need to take care of the grease stains. If you don't, it may show through your paint. The Eco Safety Products support person recommended that we use a floor buffer that you can rent to clean the floor first with orange degreaser and then water. Our grease stains didn't come completely out, but I don't think we found a heavy enough buffer to rent.
I can't really answer much about etching because I decided early on that the process was too toxic for us because we would be living in the house with our pets at the same time as we were prepping the floors.
Anyhow, I hope that helps a bit and let me know if I can elaborate on anything.
There are (at least) two different types of stains for concrete. One is a surface coating, the other is acid etching.
The former can work, but isn't as durable/lasting. I believe most of the products you get at the big-box stores are more of a top-coat type of stain.
Acid etching is just that, it's a stain containing an acid that actually etches the concrete. This is the typical type of stain you see in home magazines and such. The etching provides a deeper stain that is more durable and not prone to flaking.
I've done the latter, and applying it is super-easy. It's the prep work that can be a chore--namely if you have adhesive on the concrete already. In our case, we has tile mastic, which we had to dissolve using soybean based stripper. It worked great but was incredibly messy.
If you don't have glue to deal with, however, you should be good to go. Order up the stain (lots of places online to get it). You then dilute it per instructions and spray it on the concrete. I used a garden sprayer for this. You then let it sit for a period of time, and then you apply a neutralizer to stop the reaction.
After that, you apply water and mop/squeegee/wet-vac it up.
Then, you apply a sealer of some sorts. Common options are wax-based, polyurethane, and epoxy. I went with poly as it was relatively easy to apply (roll it on). That said, I don't think it was ever truly waterproof. For your needs, you may want to go the epoxy route.
Best Answer
You can't stain over epoxy. Epoxy paint/concrete (epoxy=2 stage, mix the stages, chemical cure) coating is a very resilient and good choice, but is expensive and more difficult to work with, and will wear about the same as a one-step paint in an outdoor environment.
Otherwise, choose something like a high-hide masonry primer and paint it -- or choose a one-step masonry paint. Don't just use your average latex house paint.
Behr makes a good one-step masonry paint. I haven't used an epoxy, but they're most common indoors (in garages) -- Only ones that I personally have seen/used outdoors are very expensive combinations intended for traction in marine environments. My favorite paint company, Benjamin Moore, makes a primer and paint combination. The primer affixes to the concrete and then the paint adheres to the primer. I personally believe that a high grade paint and primer combination is the longest lasting solution. Your local Benjamin Moore or Sherwin Williams paint store will guide you to the best application for your location and climate.
Regarding patching, see this post: Is it possible to patch concrete stairs? -- Basically, you can re-coat the entire stair set in cement and dye that, but it will chip off.
And regarding primer or paints for concrete, see this post: Do I realliy need to use primer when painting an unfinished concrete floor?