In a pot of salted boiling water, cook the pasta and pearl onions until the pasta is al dente and the onions are tender, 8 to 10 minutes. Drain and do not rinse.
In a large saucepan, heat the oil over moderate heat. Add the garlic and cook, stirring, until fragrant, about 30 seconds. Deglaze with the wine.
Add the cream and bring to a simmer. Do not let it boil. Add the cheeses and stir until melted. Keep warm over very low heat.
In a small skillet, heat 1 tablespoon of oil. Add the ham and cook over moderate heat, stirring, until browned, 3 to 5 minutes.
Add the pasta, pearl onions, ham, and tomatoes to the cheese sauce and gently fold together. Serve right away.