Preheat the oven to 350 degrees F. Coat a 9"x13" pan with cooking spray.
Cook the spaghetti in a large pot of salted water according to package directions.
Melt the butter in a large skillet over medium heat. Add the onion and cook for 3-4 minutes or until softened.
Add the garlic and cook for 30 seconds. Stir in the flour and cook for 1 minute.
Slowly add the milk to the pan, whisking constantly.
Bring the milk mixture to a simmer and cook for 3-4 minutes or until just thickened.
Remove the sauce from the heat, and mix in 2 1/2 cups of cheddar cheese, along with the cream cheese. Stir until cheeses are melted. Season with salt and pepper to taste.
Drain the spaghetti and return it to the cooking pot. Add the chicken and tomatoes to the pasta.
Pour the cheese sauce over the pasta and toss to coat evenly.
Place the pasta mixture into the prepared pan. Sprinkle the remaining 1 1/2 cups of cheddar cheese over the top.
Bake for 20-25 minutes, until casserole is bubbly and cheese is melted. Sprinkle with parsley, then serve.