Begin by bringing a large pot of salted water to a boil. Add the rigatoni pasta and cook according to package instructions until al dente, about 10-12 minutes. Reserve 1 cup of pasta water, then drain the pasta in a colander and set aside.
In a skillet, heat the olive oil over medium heat. Add the diced onion and sauté until soft and translucent, about 5 minutes.
Add the minced garlic to the skillet and cook for an additional 1 minute, stirring frequently to avoid burning.
Remove the casing from the sausage and add it to the skillet. Cook, breaking it up with a wooden spoon, until browned and cooked through, about 6-8 minutes.
Pour in the can of diced tomatoes (with juices) and bring the mixture to a simmer. Let it cook for about 5 minutes to meld the flavors.
Stir in the heavy cream and bring the sauce to a gentle simmer. Allow it to cook for 3-4 minutes until slightly thickened.
Add the cooked rigatoni to the skillet, tossing well to coat the pasta in the creamy sauce. If the sauce is too thick, add reserved pasta water a little at a time until desired consistency is reached.
Mix in the baby spinach, allowing it to wilt in the heat of the pasta and sauce.
Finally, stir in the grated Parmesan cheese until melted and mixed well. Season with salt and pepper to taste.
Serve hot in bowls, garnished with fresh basil if desired.