Trim any visible fat from the chicken and cut into 1" cubes.
Heat the olive oil in a large skillet over medium heat, add the chicken and diced onion, and cook until the chicken is cooked through and the onion is softened, stirring occasionally, about 6–8 minutes.
During the last minute of cooking, stir in the minced garlic and cook until fragrant, about 1 minute, then remove the chicken mixture to a plate and set aside.
Pour 1 cup of the milk into the hot skillet over low heat and whisk in the flour until smooth to make a roux.
Whisk in the remaining milk and the chicken broth gradually, keeping the mixture smooth.
Add the salt and pepper, bring the sauce to a gentle boil over medium heat, and allow it to thicken while whisking frequently, about 2–3 minutes.
Stir in the can of mild Rotel and the uncooked angel hair pasta, increase heat to high to bring the mixture to a boil, then reduce heat to medium–low, cover, and cook 8–10 minutes, stirring occasionally, until the pasta is al dente.
Add the cream cheese pieces and shredded Mexican cheese to the skillet and stir until melted and creamy.
Return the cooked chicken to the skillet, stir to combine, and heat through for 1–2 minutes.
Remove from heat, garnish with the diced tomato if using, and serve immediately.