This article studies the impact of immigration on wages, internal migration, and welfare. Using U.S. Census data, I estimate a spatial equilibrium model where labour differs by skill level, gender, and nativity. Workers are heterogeneous in city preferences. Cities vary in productivity levels, housing prices, and amenities. I use the estimated model to assess the distributional consequences of several immigration policies. The results show that a skill selective immigration policy leads to welfare gains for low skill workers, but welfare losses for high skill workers. The negative impacts are more substantial among the incumbent high skill immigrants. Internal migration mitigates the initial negative impacts, particularity in cities where housing supplies are inelastic. However, the negative wage impacts on some workers intensify. This is because an out-migration of workers of a given type may raise the local wages for workers of that type, while reducing the local wages of workers with complementary characteristics. Overall, there are substantial variations in the welfare effects of immigration across and within cities. Further, I use the model to assess the welfare effects of the border wall between Mexico and the U.S. The results show that the potential benefits are significantly smaller than the proposed cost of construction.