Heat olive oil in a large pot or Dutch oven over medium-high heat. Add the diced onion and cook until translucent, about 5 minutes.
Add minced garlic and ground beef to the pot. Cook until the beef is fully browned and no pink remains, breaking it up with a wooden spoon as it cooks. Drain excess fat if necessary.
Stir in the chili powder and ground cumin. Cook for 1 minute until the spices are fragrant.
Pour in the diced tomatoes with their juices, beef broth, and kidney beans. Stir well to combine all ingredients and bring the mixture to a gentle boil.
Reduce the heat to low, cover the pot, and let the chili stew for at least 30 minutes, stirring occasionally to prevent sticking and allow the flavors to meld.
Ladle the hot chili into bowls and garnish generously with shredded cheddar cheese, a dollop of sour cream, and fresh cilantro before serving.