Cook spaghetti al dente according to package directions. Reserve ½ cup pasta water before draining.
Melt butter in olive oil over medium-low heat in a large skillet. Sprinkle in flour and cook while stirring for 2 minutes (it will be thick). Add garlic and cook an additional 30 seconds.
Turn heat to low then slowly whisk in chicken broth, followed by heavy cream, tomatoes with juice, chicken bouillon, and all seasonings. Increase heat to medium-high and bring the sauce to a simmer while stirring constantly. Continue to simmer until thickened, stirring occasionally for 5-7 minutes.
Reduce heat to low and stir in cheddar cheese until melted, followed by Parmesan cheese until melted.
Stir in chicken and heat through. Stir in pasta until well coated, adding additional reserved pasta water a little at a time if needed to reach desired consistency. Taste and season with additional salt, pepper and/or red pepper flakes to taste.
Garnish with freshly grated Parmesan cheese and parsley if desired.