What techniques can I use to stop paint getting under masking tape?
There's painters tape designed to seal much better with latex paint (e.g., Frogtape); it has a material that sucks up water and gels on contact so water-based paint can't flow past the edge.  However, it's designed to work with smooth surfaces.  On a rough surface like concrete, high spots keep any kind of tape from making good contact with low spots.
To get a clean edge on a rough surface, there are a few things that will help.

Create an edge with a material that will conform to the texture, like rope caulk, also called caulking cord weatherstrip (e.g., Mortite).  It's a removable clay-like cord that can be pressed into place.  Put a straight-edge where you want the paint edge, and press the rope caulk onto the concrete against the straight-edge.  That may be enough, or you can stick some tape onto the rope caulk to protect a width of concrete.
BTW, whatever you use (tape, rope caulk, etc.), it's better to remove it while the paint is still wet but not runny.  At that stage, the mask will pull off cleanly.  If you wait until the paint is dry, you can mess up the integrity or appearance of the paint edge, and it may make it more difficult to remove the masking material.

Use much thicker paint rather than something watery.  It should be a consistency where a thick application will stay where you put it without running.  Paint used for rough surfaces, like using a stencil to paint symbols on an asphalt roadway, is more like applying paste. That's why it doesn't wick under the edge of the stencil.