Update (04/04/15): I want to stress that this is no longer an effective methodology. A more modern approach would be to assign a dedicated normal map to each rock permutation and then tile albedo/roughness/specular values across the rock surface in procedural textures.
Below are some modular rocks I have made. They are designed to be stacked vertically on-top of one another and freely rotated in order to break-up repetition.
The rocks are running in Marmoset Toolbag for this preview as I haven’t made a suitable rock material in UDK yet.