One off-the-cuff idea: treat this as an image-processing problem.
- Segment your world into a grid of "pixels", with the intensity of each pixel being the number of problems reported there.
- Blur the "image" a bit, to group complaints that are relatively close, but not in adjacent pixels. How much you blur is probably a matter of experimentation.
- Run an edge detection algorithm over the image. You now have borders defining clumps of complaints.
The major problem that I can see is that you might get several closely-spaced groups blurring into each other, creating a single super-large group.
Update: "Segment the world, find local maxima, then calculate the voronoi diagram of the point set described by the maxima" might work, too.