Social scientists argue that there are two broad types of factors that lead to human migration. These are "push" factors -- factors that make people want to leave where they are -- and "pull" factors, which are factors that make people want to go to some specific other region or country.
Let us look at push and pull factors in the context of people migrating to the US from Mexico and Central America. Push factors here are mostly economic right now, but are sometimes political as well. In many of these countries, there are few economic opportunities that will allow people to have the sort of lives that they want. At other times, the political situation leads to instability and upheaval and makes people want to flee so as to remain safe (as with Colombians fleeing the fighting between the government and FARC in years past).
Pull factors are the opposite of the push factors. In the US (especially before the economic crash), there are lots of jobs that will pay well and will, the migrants think, give them the sorts of lives that they see on TV. This pulls them to the US. So does (especially before the anti-illegal immigrant wave) the welcoming nature of the society of the US.
Overall, then, people migrate because they are pushed out of their homes and/or because they are pulled by the lure of better conditions elsewhere.