In a large pot, heat the olive oil over medium heat. Add the Italian sausage and cook, breaking it into crumbles, until browned, about 5-6 minutes. Drain any excess fat if needed.
Add the diced onion, garlic, carrots, and celery to the pot, and sauté for 4-5 minutes until the vegetables are softened.
Stir in the Italian seasoning and red pepper flakes (if using), cooking for 1 minute until fragrant.
Pour in the chicken or vegetable broth, diced tomatoes, and ditalini pasta. Bring the soup to a boil, then reduce the heat to a simmer. Cook for 10-12 minutes, or until the pasta is al dente.
Stir in the heavy cream and Parmesan cheese, mixing until the cheese is melted and the soup is creamy.
Add the chopped spinach or kale, stirring until wilted, about 2-3 minutes.
Season with salt and pepper to taste. Serve hot, garnished with fresh basil or parsley if desired.
Prep Time: 15 minutes | Cooking Time: 25 minutes | Total Time: 40 minutes