In a large pot or Dutch oven, heat olive oil over medium heat. Add diced onion and cook until soft and translucent, about 3–4 minutes. Stir in garlic, sun-dried tomatoes, Italian seasoning, and red pepper flakes. Cook for 1–2 minutes until fragrant.
Pour in the chicken broth and bring to a simmer. Stir in shredded chicken and let it simmer for 10 minutes to absorb the flavors.
Lower the heat and add heavy cream and parmesan cheese. Stir until the cheese is melted and the soup is creamy. Season with salt and pepper to taste.
Stir in baby spinach and cook for 1–2 minutes until wilted. If adding cooked pasta or rice, stir it in just before serving.
Ladle into bowls and garnish with fresh basil or parsley. Serve with toasted bread or crackers.