Cities experience significant, near random walk productivity shocks, yet population is slow to adjust. In practise local population changes are dominated by variation in net migration, and we argue that understanding gross migration is essential to quantify how net migration may slow population adjustments. Housing is also a natural candidate for slowing population adjustments because it is difficult to move, costly to build quickly, and a large durable stock makes a city attractive to potential migrants. We quantify the influence of migration and housing on urban population dynamics using a dynamic general equilibrium model of cities which incorporates a new theory of gross migration motivated by patterns we uncover in a panel of US cities. After assigning values to the model's parameters with an exactly identified procedure, we demonstrate that its implied dynamic responses to productivity shocks of population, gross migration, employment, wages, home construction and house prices strongly resemble those we estimate with our panel data. The empirically validated model implies that costs of attracting workers to cities drive slow population adjustments. Housing plays a very limited role.