There are a couple of different ways to do this. One option is to group all the locations together based on distance into clusters and then use the coordinates of each point in the cluster to create a convex hull. http://www.codeproject.com/Articles/29275/Convex-Hull
Another approach is to create a voronoi diagram to create your regions. Take a look at this blog post: http://alastaira.wordpress.com/2011/04/25/nearest-neighbours-voronoi-diagrams-and-finding-your-nearest-sql-server-usergroup/