Bring a large pot of salted water to a boil for the gnocchi. Cook according to package directions until they float to the top, usually 2-3 minutes. Reserve 1/2 cup of the cooking water, then drain.
While waiting for the water to boil, heat the olive oil in a large skillet over medium-high heat. Add the Italian sausage, breaking it into crumbles with a wooden spoon. Cook until browned and no longer pink, about 5-7 minutes.
Add the diced onion to the skillet with the sausage. Cook until softened, about 3-4 minutes.
Stir in the minced garlic, red pepper flakes (if using), and Italian seasoning. Cook for another 30 seconds until fragrant.
Pour in the white wine or chicken broth and use it to deglaze the pan, scraping up any browned bits from the bottom. These bits are pure flavor! Let it simmer for about 2 minutes until slightly reduced.
Add the spinach to the skillet a handful at a time, stirring until wilted before adding more. It will seem like a lot at first, but will cook down significantly.
Reduce the heat to medium-low and stir in the heavy cream. Let it simmer gently for 2-3 minutes until it starts to thicken slightly.
Add the cooked gnocchi to the skillet and toss to coat in the sauce. If the sauce seems too thick, add a splash of the reserved pasta water to loosen it up.
Stir in the Parmesan cheese and fresh basil. The residual heat will melt the cheese and incorporate it into the sauce. Season with salt and pepper to taste.
Serve immediately, garnished with additional Parmesan cheese and a sprinkle of lemon zest if desired.