Preheat oven to 350° F.
Cook macaroni in a large pan of boiling, salted water until al dente, about 8 to 10 minutes.
Meanwhile, pour milk into another pan and wam over medium heat. Gradually add half of the cream cheese until all is melted. Stir in cheddar and flour until well mixed. Add Parmesan, mustard, salt, paprika and cayenne. Stir until mixture is smooth.
Drain pasta, then add hot noodles to cheese mixture. Stir in onions and tomatoes. Mix well until all noodles are coated. Pour entire mixture in a baking dish. Smooth the top. Bake, loosely cover with foil, in center of preheated oven, until casserole is bubbly, about 30 to 35 minutes.
Remove foil from casserole and turn broiler on. Dot top of the casserole with remaining cream cheese. Broil on the top rack until the cream cheese has melted and is golden, about 3 to 5 minutes. Serve immediately.