Here is what I have been able to come up with:

Here are the nodes:

Click to enlarge.
The shaders:
The bare cement shader is just a mix of diffuse/glossy with a cement image texture controlling the diffuse color and the glossy roughness (after going through a color ramp for fine tuning).
The paint shader is a straight mix of glossy/diffuse with a light, desaturated yellow color on the diffuse shader. On the paint I also use a high contrast grunge texture, sent through a multiply node, to mix in some grunge. For the grunge just send a grunge texture through a color ramp with some grimy colors on a diffuse shader.
The mask:
When paint wares off in real life it doesn't fade out and slowly reveal what's underneath of it, it chips off; it is either there or it isn't. to simulate this I send a noise texture sent through a math > greater than node. The greater than node gets rid of any grey in-between areas.
The bump-mapping:
One of the biggest selling points for realism I have found is bump. The biggest thing to keep in mind is that in real life the paint will conform to the surface it is on. So in your material you want it to use the same bump mapping as the underlying surface (the bare concrete). However it will slightly fill in the crevices and the bumps will not be quite as distinct. To simulate this I use the same bump map for both shaders, but I use a smaller strength on the paint shader. In terms of the bump itself I am using part image texture (same as the one for the bare concrete color), and mix it with two different sizes of voronoi (inverted with color ramps) using two bump map nodes.
Further reference:
- Here's the .blend file:

Unfortunately due to license issues I can't include the image textures in the .blend so you will have to use your own.
- See my answer here for a more detailed look at levels of grunge.
- Check out this post on BA where I have a very similar shader for chipped paint on wood.