In a large saucepan, brown the sausage with the diced onion, breaking up the sausage into crumbles as it cooks. Drain any excess grease.
Stir in the chopped garlic, ground fennel, and red pepper flakes, cooking until aromatic, about 1 minute.
Add the chicken broth, diced tomatoes, pasta, and Italian seasoning. Bring the mixture to a boil, then reduce the heat to a simmer. Cook until the pasta is al dente, approximately 6-8 minutes.
Incorporate the grated Parmesan, cream cheese, and heavy cream, stirring until the cheeses are fully melted and blended into the soup, about 3-5 minutes.
Adjust the seasoning with salt and pepper to taste. Sprinkle with fresh parsley, if using, before serving.