I'm using 1024 textures for smaller buildings and 2048 for larger one's. Basic workflow:
1) Unwrap in Blender
2) Smack a concrete texture on it
3) paint some dirt here and there.
Result:
This only works for small buildings. Here is an example from Battlefield 2, they put a small 128x128 brick texture and tiled it across the entire building and added Dirt on top of that.
Is there a way to do this using Unity or do I have to create my own custom shaders? (God forbid)