In a large bowl, combine the ground beef, breadcrumbs, Parmesan cheese, egg, minced garlic, Italian seasoning, salt, and pepper. Mix until just combined.
Roll the mixture into small meatballs, about 1 inch in diameter. You should get approximately 24 meatballs.
In a skillet, heat olive oil over medium heat. Brown the meatballs on all sides for about 5 minutes. This step adds flavor but can be skipped if you're short on time.
Place the meatballs in the Crock Pot.
Add the canned diced tomatoes (with juice), beef broth, carrots, celery, onion, and kidney beans to the Crock Pot. Stir gently to combine without breaking the meatballs.
Cover and cook on low for about 6 hours, or until meatballs are cooked through and vegetables are tender.
About 10 minutes before serving, stir in the spinach or kale and allow it to wilt.
Serve hot, garnished with fresh basil if desired. Use a ladle to transfer the soup into bowls.