Melt the butter in a medium saucepan over medium-low heat. Add the onion, serrano chiles, and jalapeño, and cook for about 5 minutes, or until the onions are translucent. Add the garlic and cook for another 30 seconds.
Whisk the flour into the pan and cook for about 30 seconds. Slowly pour the milk into the pan while whisking, and continue to cook, whisking constantly, until the sauce has thickens, about 3 minutes. Stir in the cilantro and tomatoes.
Reduce the heat to low, and add the grated cheeses a ¼ cup at a time, stirring after each addition, until it is completely melted. Repeat until all of the cheese has been added. Stir in the sour cream until completely combined. Serve immediately with tortilla chips. Leftovers (if you have any!) can be refrigerated for up to 5 days, and then reheated when you're ready to serve.