Cook the beef: Heat a large skillet over medium-high heat. Add ground beef and cook, breaking it up with a spoon, until no pink remains and beef is well-browned, about 8-10 minutes.
Drain excess fat if desired, leaving about 1-2 tablespoons. Add diced onion and cook until softened, about 5 minutes. Add garlic and cook for 1 more minute.
Stir in taco seasoning and water or broth. Simmer for 5-10 minutes until liquid is absorbed and beef is well-seasoned. Taste and adjust seasonings.
Prepare the beans: If using refried beans, warm them in a small saucepan or microwave until spreadable. If using black beans, drain and rinse, then season with salt, cumin, and garlic powder.
Warm the tortillas: Warm tortillas individually in a dry skillet over medium heat for 30-60 seconds per side until pliable, or wrap in damp paper towels and microwave for 30-45 seconds. Keep covered with a clean towel.
Assemble the burritos: Place one warmed tortilla on a clean work surface. Spread about 1/2 cup of the beef mixture in the center, leaving a 2-inch border on all sides.
Top with 2-3 tablespoons of beans, 1/4 cup shredded cheese, and any desired toppings.
Fold and roll: Fold the bottom edge up over the filling, then fold in the sides, and roll tightly from bottom to top. Press gently along the seam to seal.
Optional crisping: Heat a dry skillet over medium heat. Cook each burrito for 2-3 minutes per side until golden and crispy. Alternatively, arrange on a baking sheet and bake at 425 degrees Fahrenheit for 15-20 minutes, turning halfway through.
Serve immediately with salsa, guacamole, and sour cream. For freezing, cool completely, wrap individually in plastic wrap, and freeze for up to 3 months.