Preheat oven to 375°. Cook pasta according to package directions for al dente; drain.
Meanwhile, in a large saucepan, melt butter over medium heat. Stir in flour until smooth; gradually whisk in milk and cream. Bring to a boil, stirring constantly; cook and stir until thickened, 1-2 minutes. Gradually stir in Swiss and Colby cheeses until melted. Add ham and pasta; toss to coat.
Transfer to a greased 11x7-in. baking dish. In a small bowl, mix topping ingredients; sprinkle over pasta. Bake, uncovered, until bubbly, 15-20 minutes.