Boil the Macaroni: Cook the 2 cups of elbow macaroni in salted water according to the package instructions, until just tender. Drain and set aside.
Make the Cheese Sauce: In a saucepan, melt 2 tablespoons of butter over medium heat. Stir in 2 tablespoons of all-purpose flour and cook for about 1 minute to form a roux (this thickens the sauce).
Add the Milk: Gradually whisk in 2 cups of milk and continue stirring until the mixture thickens and becomes smooth. Be patient and stir constantly to avoid lumps.
Stir in the Cheese: Remove the saucepan from the heat and stir in 2 cups of shredded cheddar cheese (and 1/2 cup of grated mozzarella, if using) until completely melted and creamy. Add 1/2 teaspoon salt and 1/4 teaspoon paprika for extra flavor.
Combine with Macaroni: Add the cooked macaroni to the cheese sauce and stir until the pasta is well-coated with the creamy mixture.
Bake: Pour the mac and cheese into a greased baking dish. If you want a crispy topping, sprinkle 1/2 cup of breadcrumbs evenly over the top. Bake in a preheated oven at 180°C (350°F) for 15-20 minutes, or until the top is golden and the sauce is bubbling.