I like trying to keep track of what the dwarves are into and who they are. It is quite arduous to do that properly, thanks to the very in-depth dwarf descriptions (which are great, I think!). Related to this is that with migrants showing up, they tend to flood the fortress and the population starts growing quickly. This makes it difficult to track the dwarves and try and work out what they should be doing. I suppose it's an important feature, affecting with many aspects of the gameplay. Visitors use a petition system, and I think a similar system could work for migrants.
Contract with the civilization regarding migrants
Perhaps the dwarves could negotiate a contract with the civilization regarding migrants? If a contract is formed, it would have positive and negative effects, such as the improving relations or effects on trade. This could for an example enable or disable petitions for the arriving migrants, such as, without a contract, the migrants would petition to stay. With a contract, they could merely show up?
Migrants from other dwarves cities and civilizations
Perhaps there could be somewhat random travellers looking for a new life who would petition to become citizens or visitors.
This suggestion is fairly crude, and I don't know the details of the current migrant system in detail. However, I think there are experienced dwarf fortress players on the forums, who could give perhaps more precise input regarding this feature. Personally I like the migrant system, but I think it would also be nice, if there was some way to affect the number of incoming migrants. One such reason is that it would be nice to try and create a settlement with a group of dwarves, with the idea that they would be the only citizens of the settlement, and you would have to wait for them to have children and for them to grow up, for the population to grow. I also think the player shouldn't have simple and straight control over the matter, but rather complex control, which would involve negotations, and such. What do you think? What kind of system could work with this? Or how would you tweak the pre-existing system?
PS. I also heard that there's some changes related to this in an upcoming version.