Heat olive oil in a large heavy-bottomed pot or Dutch oven over medium heat. Add diced onion and cook for 3-4 minutes until softened and translucent.
Add minced garlic, diced carrots, and celery to the pot. Cook for 2-3 minutes, stirring frequently, until vegetables begin to soften and garlic becomes fragrant.
Add ground turkey or beef to the pot, breaking it up with a wooden spoon. Cook for 5-6 minutes until meat is browned and cooked through. Season with salt and pepper.
Pour in chicken broth, diced tomatoes with their juice, Italian seasoning, dried basil, and red pepper flakes. Bring the mixture to a boil, then reduce heat to medium-low and simmer for 8-10 minutes.
Add tortellini to the simmering soup and cook according to package directions (typically 3-4 minutes for fresh, 5-7 minutes for frozen). Stir occasionally to prevent sticking.
Stir in chopped spinach and cook for 1-2 minutes until wilted. Remove pot from heat.
Slowly stir in coconut milk or Greek yogurt, grated Parmesan cheese, fresh basil, and parsley. Taste and adjust seasoning with salt and pepper as needed.
Ladle soup into bowls and serve immediately with additional Parmesan cheese and fresh herbs on the side.