Cook the Ground Beef: In a large skillet over medium heat, sauté the onion and garlic until translucent. Add ground beef and cook until browned. Drain any excess fat.
Season the Beef: Stir in taco seasoning and water. Simmer for about 5 minutes. Season to taste and remove from heat.
Make the Cheese Sauce: In a saucepan, melt butter over medium heat. Whisk in flour and cook for 1-2 minutes. Gradually add milk, whisking until thickened.
Add Cheeses and Veggies: Reduce heat and stir in cream cheese, cheddar, and Monterey Jack. Once melted, add diced bell pepper, tomatoes, cilantro, and seasonings. Mix well and add red pepper flakes if using.
Assemble Tacos: Preheat oven to 350°F (175°C). Arrange taco shells on a baking sheet. Fill each with ground beef, then top generously with cheese sauce.
Bake: Bake for 10-12 minutes until cheese is bubbly and shells are crisp.
Garnish & Serve: Top with extra cheese, fresh cilantro, and optional sour cream or hot sauce. Serve warm.