I think a city generation algorithm would have to grow more organically, possibly some varient of an L system.
I'll dig up an old link http://www.cartographersguild.com/showthread.php?t=920 where I was playing with such a system using the processing language. I was focusing on streets, not buildings, but such an approach might work best in the long run.
I reference this site: http://www.complexification.net/gall...rate/index.php which has an applet of the script I modified. click on the demo to see what looks like a city "grow" before your eyes
-Rob A>