Heat the olive oil in a large Dutch oven over medium heat until shimmering. Add the diced onion and cook, stirring occasionally, until it becomes translucent and fragrant, about 5 minutes. This develops a sweet, savory base for the chili.
Add the minced garlic to the pot and cook for another 30 seconds until fragrant, being careful not to burn it. The aroma should intensify as the garlic releases its flavor.
Increase the heat to medium-high, then add the ground beef, breaking it apart with your spoon. Cook until the beef is browned all over, about 7-8 minutes, until it develops a deep color and releases some fat.
Drain excess rendered fat if desired, then stir in chili powder, cumin, and cinnamon. Cook for 1-2 minutes to toast the spices and release their fragrant oils, creating a warm, spicy aroma.
Pour in the diced tomatoes along with their juices, scraping up any browned bits from the bottom for extra flavor. Bring the mixture to a gentle simmer, allowing the flavors to meld.
Add the drained kidney beans and pour in the beef broth to loosen the mixture slightly. Stir well to combine everything into a thick, textured stew that is just starting to bubble.
Reduce heat to low, cover the pot partially, and let the chili simmer gently for 45-60 minutes. During cooking, stir occasionally, and taste to adjust salt and pepper if needed. The longer simmer allows the flavors to deepen and the chili to thicken.
Check the chili’s consistency — it should be thick and hearty with a rich tomato base and tender beans and meat. If it’s too thick, stir in a bit more broth or water; if too thin, cook uncovered for a few more minutes.
Taste the chili and adjust seasoning with additional salt, pepper, or spices if desired. Once balanced, remove from heat and let it rest for a few minutes to enhance the flavors.
Scoop the hearty chili into bowls, garnish with your favorite toppings like shredded cheese, chopped green onions, or sour cream if desired. Serve hot for a satisfying, warms-your-belly meal.