Preheat the oven to 350 degrees F.
Grease a 2-quart casserole dish or a 2-quart square baking dish.
In a large pot of salted, boiling water, cook the noodles to al dente, according to the package directions.
Drain the noodles and set aside.
While the noodles are cooking, in a large skillet, cook the beef, while crumbling, until it is no longer pink, about 5-7 minutes. Drain the excess grease.
Stir the tomato sauce, the basil, the sugar, the garlic powder, the salt, and the pepper into the beef and bring to a boil.
Reduce the heat and simmer the beef mixture, uncovered, for 5 minutes.
In a medium mixing bowl, use an electric hand mixer to beat the sour cream and the cream cheese together on medium speed until smooth.
Stir the milk and the onion into the sour cream mixture.
In the prepared casserole dish, layer 1/2 of the cooked noodles, 1/2 of the beef mixture, 1/2 of the cream cheese mixture, and the spinach.
Top the spinach with the remaining beef mixture and then the remaining noodles.
Cover and chill the remaining cream cheese mixture until needed.
Cover the casserole dish with lightly greased foil and bake until it is heated through, about 45 minutes.
Uncover the casserole dish and spread the remaining cream cheese mixture over the top of the casserole.
Sprinkle the cream cheese mixture with the cheddar cheese.
Bake the casserole, uncovered, until the cheese melts, about 10 minutes.
Let the casserole stand for 10 minutes.
Serve.