The night before, rinse and sort the beans, then cover them with 2 inches of water and let them soak overnight.
The next day, drain and rinse the beans before adding them to a large pot. Cover with about 3 inches of water, bring to a simmer, and cover the pot. Cook for approximately 2 hours, or until the beans are tender.
Strain the beans, reserving the cooking liquid, and place them back in the pot, off of the heat. Mash the beans, keeping some of the beans in larger pieces. For creamier refried beans mash the beans completely. Add some of the reserved cooking liquid back to the beans. Add enough to reach the desired consistency. Set aside.
In a large skillet over medium heat, brown the ground beef, crumbling it as it cooks. Add the onions and sauté until tender. Drain off any excess grease, then stir in the minced garlic. Cook for an additional 30 seconds until fragrant. Season with 1 teaspoon salt, ½ teaspoon pepper, ¼ teaspoon chipotle powder, ½ teaspoon onion powder, 2 teaspoons ground cumin, 1 teaspoon garlic powder, 1 teaspoon chili powder and 1 teaspoon paprika. Set aside.
In a medium pot over medium heat, melt the butter. Once melted, whisk in the flour to create a roux. Gradually whisk in the chicken stock, ensuring the roux is fully incorporated. Next, whisk in the milk and cook until the mixture thickens to a sauce-like consistency. Stir in the shredded cheese and drained Rotel. Season, then set aside.
Preheat an oven to 350°F. Start by placing 2 tortillas in the bottom of a lightly greased 9x13 baking dish. Spread half of the refried beans evenly over the tortillas, followed by half of the ground beef and ½ of the cheese sauce. Repeat the layering process one more time, then finish by topping with crumbled tortilla chips and shredded cheese.
Bake uncovered for 45-50 minutes. Top with your favorite toppings. Enjoy!