Heat the vegetable oil in a large pot over medium heat. Add the diced onion and cook until translucent, about 5 minutes.
Add the minced garlic and cook for an additional minute, until fragrant.
Increase the heat to medium-high and add the ground beef. Cook, breaking it apart with a spoon, until browned and no longer pink, about 8 minutes.
Stir in the chili powder, ground cumin, dried oregano, and cayenne pepper (if using). Cook for 2 minutes, allowing the spices to become fragrant.
Add the kidney beans, diced tomatoes with their juice, tomato sauce, and beef broth. Season with salt and pepper.
Bring the mixture to a boil, then reduce the heat to low and simmer, uncovered, for 1 hour, stirring occasionally.
Taste and adjust seasoning if necessary. Serve hot with your choice of toppings such as shredded cheese, sour cream, or chopped green onions.