Deleted post
City generation is tricky. For RogueBot I first generated a street grid, then broke it up by adding "islands" in certain intersections, that contained parks or simply more buildings. The result is hardly realistic, mainly for lack of diversity, but looks reasonably organic at least. Might serve as a starting point.
What properties do you want in your city? I think it would be helpful to first manually plot out a few cities that are "typical" of what you would like your generate and then work backwards from there to come up with an algorithm.
Here's a useful article that could serve as a starting point for generating cities. The rooms generated would be your towns and the edges your roads.