Preheat the oven to 400°F/200°C and lightly spray a 9x13 casserole dish and set aside. (see note 2)
Cook pasta in salted water to al dente according to the package directions. Be careful not to overcook it. Typically this takes 10 minutes. Reserve ½ cup of pasta cooking water before draining the pasta, in case it's needed to thin down the sauce later.
While the pasta cooks, make the sauce. In a skillet over medium high heat, heat olive oil and sauté the onion until soft and translucent. Add garlic, and cook for 30 seconds.
Sprinkle in the flour, and cook for for 1 minute or until you no longer can smell raw flour, then gradually add the broth as you whisk. Add the cream, allow it to warm up and cook for 2 minutes. Season with Italian seasoning, smoked paprika, and black pepper.
Remove from heat, add in the parmesan cheese and half of the cheddar and mozzarella and let the cheeses melt. Taste the sauce at this point, and add salt if needed. If the sauce seems too thick, add in a small amount of the reserved pasta water. Fold in the cooked chicken, drained tomatoes, and transfer to a casserole dish.
Mix in the cooked pasta.
Top with the remaining mozzarella and cheddar cheese, and bake in the preheated oven for 10-15 minutes or until the cheese is melty and bubbly. If desired, place under the broiler to crisp and brown the top. Watch it carefully so that it doesn't burn.
Remove the chicken spaghetti casserole from the oven and garnish with optional red pepper flakes and fresh parsley before serving.