Melt the butter in a large nonstick skillet over medium heat. Add the serranos, jalapenos and onion. Cook, stirring occasionally, until softened, 5 to 7 minutes. Add the garlic and cook for 30 seconds.
Whisk in the flour. Gradually whisk in the half-and-half. Cook, whisking, until the mixture thickens, about 3 minutes.
Stir in the tomatoes and cilantro. Reduce the heat to low. Stir in the Cheddar and Jack cheeses 1/4 cup at a time, stirring constantly, until all the cheese has melted. Stir in the sour cream and salt. Serve with tortilla chips.