In a large dutch oven, heat the oil over high heat. Working in batches, brown the beef for 5 minutes. Transfer to a plate.
Pour off all but 2 tbsp. of fat from the pot. Add the onions and stir over medium-low heat until soft, 8 minutes. Stir in the garlic and 3 cups water, scraping the pan. Return the meat to the pot. Stir in the chile powder, cumin, oregano, 1 tbsp. coarse salt, 1 1/2 tsp. pepper and the cayenne; cook over low heat for 5 minutes. Stir in the tomatoes and tomato sauce. Cook, stirring, for 40 minutes.
Skim the fat from the surface. Stir in the beans and cook for 5 minutes. Serve with the toppings.