Heat olive oil in a large Dutch oven or heavy-bottomed pot over medium-high heat.
Add the beef and cook until browned on all sides. Remove beef and set aside.
In the same pot, add the chopped onion and sauté until translucent, about 5 minutes. Stir in the minced garlic and cook for 1 minute more.
Return the beef to the pot. Stir in the chili powder and ground cumin, coating the meat and onions evenly.
Pour in the crushed tomatoes and beef broth. Bring the mixture to a boil, then reduce the heat to low.
Cover and simmer gently for 1.5 to 2 hours, or until the beef is incredibly tender.
Stir in the kidney beans and cook for an additional 15 minutes to heat through.
Ladle the chili con carne into warm bowls and top with shredded cheddar cheese, a dollop of sour cream, and fresh cilantro before serving.