In a large skillet over medium-high heat, cook the ground beef and diced onion until the beef is browned and the onions are soft (about 8-10 minutes). Drain any excess grease.
Add the minced garlic to the skillet and cook for 1 more minute until fragrant, then transfer the entire beef mixture into your slow cooker.
Add the drained kidney beans, pinto beans, crushed tomatoes, diced tomatoes, and beef broth to the slow cooker.
Sprinkle in all the spices: chili powder, cumin, smoked paprika, salt, pepper, and sugar. Stir everything together until well combined.
Cover and cook on LOW for 6-8 hours, or on HIGH for 3-4 hours. The longer it simmers, the deeper the flavors will develop.
Taste and adjust seasoning if necessary. Serve hot, garnished with shredded cheddar cheese, sour cream, and fresh cilantro.