Cook the penne pasta according to package instructions until al dente. Drain and set aside.
In a large skillet, heat the olive oil over medium heat. Add the onion and sauté until translucent, about 3-4 minutes.
Add the garlic and Italian sausage to the skillet, breaking it up with a wooden spoon. Cook until the sausage is browned and cooked through, about 5-7 minutes.
Stir in the dried Italian herbs and diced tomatoes (with their juice). Let simmer for about 5 minutes to blend the flavors.
Pour in the heavy cream and add the spinach. Cook for an additional 2-3 minutes until the spinach is wilted (if using fresh) or heated through (if using frozen).
Combine the sausage mixture with the cooked penne pasta, mixing well. Season with salt and pepper to taste.
Transfer the pasta mixture to a greased baking dish. Top with shredded mozzarella and grated Parmesan cheese.
Bake in the preheated oven for 20-25 minutes, or until the cheese is bubbly and golden brown on top.
Let the dish rest for a few minutes before serving.
Notes
Serve the pasta bake directly from the dish with a sprinkle of fresh basil on top for added color and flavor.