I am still experimenting on these. My current approach is as follows:
1) download a photo of a masonry wall from here: www.mayang.com/textures. I get this sort of thing:
2) turn the photo into a texture tile. I do this (in the Gimp) by cropping a square section of the texture, and then if I'm lazy using the 'create seamless texture' filter on GIMP or else, in this case, doing it properly (offset image by 50% X and Y, then clone/heal along the seams, then adjust the colours if needed - usually not needed if you are going to recolour as I usually do). Now I have this sort of thing (I've had to save this as a jpg because it is too big to post here otherwise - my file is 7mb, but this should work just as well):
3) On my map, I make a layer with my wall texture (often I rescale it so the blocks are the size I want). Then I use a layer mask to block all parts of the layer except the wall. Then I go over each bit carefully with a HARD white or black brush respecting the stones (this bit takes long!).
3.5) Optional step. If you want to change the colour of the wall, desaturate completely and add a new layer on top filled with a block colour of your choice, then copy the same walls layer mask to it. Set this layer to burn and opacity at c. 50%
4) Make a new layer over that. Using the colour selection tool on the wall layer mask white bits, select your wall outline(s) then on your new layer fill this with black, then copy the same walls layer mask to it. Use a big soft brush and the smudge tool. Stroke away from the edges of the wall towards the centre roughly. This allows the walls to 'appear' - you can see the effects clearly on my Nightwyrm Fortress Maps.
5) Make a layer below and use a soft brush with black and smudge a lot to make under-wall shadows. This is crucial and makes the walls pop out - I no longer use drop shadows on my maps - I find they don't look good.
6) Cross your fingers and hope it works.