Boil large elbow macaroni according to directions.
In a large sauce pan melt butter over medium low heat
Stir in flour and continue to stir, cooking for about 3 to 5 minutes. Basically you make a roux and want to not only combine the mixture, but cook the flour taste out as well.
Gradually pour in milk and cream, stirring continuously to combine well.
Stir in paprika, dry mustard powder and salt.
Gradually stir in the first set of cheeses, reserving the cheese designated for topping. Stir until creamy.
Gently fold together the cheese sauce and the cooked large elbow macaroni.
Pour mixture into a baking dish. (Try not to eat massive spoonfuls during this process).
Top with remaining topping cheese.
Bake at 350 degrees for about 10 minutes, then switch to broil and broil for 5 minutes or until golden browned on top.