In a large skillet, melt the butter over medium heat. Sprinkle in the flour whisking continually to prevent any lumps. Cook the mixture for about 2 minutes.
Slowly and gradually, stir in the milk or half and half while whisking to prevent lumps. Whisk until the mixture is smooth. Stir in the broth and mix until combined. Cook, stirring frequently for about 3-4 minutes or until the sauce thickens.
Stir in the enchilada sauce and green chiles and cook over medium-low heat for about a minute. Remove from the heat and stir in the sour cream, mixing until incorporated. Season with salt and pepper to taste.
Remove about 1 cup of the sauce and mix it with the shrimp mixture.
Wrap the tortillas in a damp paper towel or tea towel and microwave for about 1 minute.
Spread about 1/3 cup of the creamy enchilada sauce on a 9x13 baking dish.
Working with one tortilla at a time, scoop about 1/3 cup of the shrimp mixture into each tortilla. Tightly roll up the tortilla and place it seam side down on the prepared baking dish. Repeat with the remaining tortillas placing each filled roll next to each other on a single layer.
Pour the remaining creamy enchilada sauce over the filled enchiladas and sprinkle the cheese on top. Cover with aluminum foil making sure the foil doesn’t touch the cheese.
Bake for 15 minutes then, remove the foil and bake for an additional 10-15 minutes or until the cheese is bubbling and the edges lightly golden. Remove from the oven.
Top with the chopped tomato, chopped avocado, chopped cilantro and queso fresco or cotija cheese. Serve immediately.