Urban areas exist in a wide variety of population sizes, from small towns to huge megacities. The statistics of city size distributions have been under scrutiny for over a century. No proposed form has received more attention than Zipf’s law, a Pareto distribution with power law exponent equal to one. Data from many urban systems approximately support Zipf’s distribution while typically also violating its expectations for small and large cities and showing variations in exponents. In this talk, I will present how the structure of migration flows between cities together with the differential magnitude of their vital rates determine a variety of size distributions. These results provide a powerful framework for deriving Zipf’s law and other size distributions under specific additional conditions, and to resolve puzzles associated with their deviations in terms of concepts of symmetry, information, and selection.