I agree on making certain that there is no ground moisture coming up from the soil underneath (as most concrete patios do not have a moisture barrier under them - plastic) A good test is to secure some plastic (1'x1', several locations) with duct tape, and check for condensation in 48-72 hours. I believe that concrete stain is the best way to go, and is the simplest application for a DIY'er. Epoxy/urethane systems are too complex (and expensive) for them to deal with induction period/ pot life details. As noted previously, surface preparation is vital for these jobs, and if the patio is uncovered, it may require periodic maintenance.