Preheat your oven to 400°F (200°C).
Bring a large pot of salted water to a boil.
Add the macaroni and cook according to package instructions until 1 - 2 minutes before al dente.
Reserve 1 cup of pasta water, drain the rest and set aside.
In a skillet over medium heat, cook the chorizo, breaking it into small pieces, until browned and cooked through (about 5 - 7 minutes).
Add the onion, garlic, and poblano or jalapeño and cook for another 4 - 5 minutes or until softened.
Stir in the chopped tomatoes, then remove from heat and set aside.
In a large pot over medium heat, melt the butter.
Add the flour and whisk constantly for about 2 minutes to create a smooth roux (avoid browning).
Gradually whisk in the milk and cook, stirring continuously, until the sauce thickens, about 5 minutes.
Reduce the heat to low and add the shredded cheeses.
Stir until the cheese is fully melted and the sauce is smooth.
Season with salt and black pepper to taste.
Add the cooked macaroni to the cheese sauce and stir until fully coated.
If the cheese sauce is too thick, thin it out with the reserved pasta water.
Transfer the mac and cheese to a greased 9x13-inch baking dish.
Sprinkle the remaining cheese over the mac, then spoon over the queso fundido topping.
Bake for 15 - 20 minutes or until the edges are bubbly and golden.
Carefully remove from the oven and garnish with fresh cilantro.
Serve hot and enjoy!