Heat oil in a large pot over medium heat. Add the onion and garlic, and sauté until the onion is translucent.
Increase the heat to medium-high and add the ground beef. Cook until browned, breaking up the meat as it cooks.
Stir in the chili powder and cumin, cooking for another minute until fragrant.
Add the diced tomatoes with their juice and the beef broth. Bring to a boil, then reduce the heat to low and simmer for 30 minutes, stirring occasionally.
Stir in the kidney beans and continue to simmer for another 15 minutes. Season with salt and pepper to taste.