you can check out k-means clustering algorithm here.
In data mining, k-means clustering is a method of cluster analysis which aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean. This results into a partitioning of the data space into Voronoi cells.
kmeans-postgresql implementation here.. and i newly meet this topic Spatial clustering with PostGIS , you can check out here from @Mike Toews with ST_MinimumBoundingCircle function..
i hope it helps you...