In a large bowl, combine the ground beef or turkey, breadcrumbs, Parmesan cheese, Italian seasoning, egg, salt, and pepper. Mix until well combined.
Form the mixture into small meatballs (about 1 inch in diameter) and set aside.
In a large pot, heat the olive oil over medium heat. Add the diced onion and sauté until translucent, about 3-4 minutes.
Stir in minced garlic and sauté for another minute until fragrant.
Carefully add the meatballs to the pot, browning them on all sides (about 5-7 minutes). You may need to do this in batches.
Once meatballs are browned, pour in the chicken broth and bring to a gentle boil.
Reduce the heat to low and pour in the heavy cream, stirring gently to combine.
Add the cherry tomatoes, spinach, and red pepper flakes if using. Let it simmer for another 10 minutes until the spinach wilts and the soup thickens slightly.
Taste and adjust seasoning if necessary.
Serve hot, garnished with fresh basil.
Notes
Feel free to adjust the spice level by adding more or less red pepper flakes.