Boil the pasta 1 minute shy of the package directions.
Meanwhile, heat olive oil in a large skillet over MEDIUM-HIGH heat. Add the ground beef and onion and cook, breaking up the beef with a spoon until browned and crumbled, about 4 or 5 minutes. Drain the excess fat from the skillet and return it to the heat.
Add the Italian seasoning, chili powder, paprika, garlic powder, salt and pepper. Cook, stirring for 2 to 3 minutes.
Sprinkle the flour over the beef and cook, stirring, for about 1 minute.
Slowly add the beef broth, stirring as you add it. Stir in the tomato sauce and increase the heat to MEDIUM HIGH. Bring the mixture to a boil then reduce the heat and simmer for about 10 minutes, or until slightly thickened.
Stir in the heavy cream or half and half and cheddar cheese. Stir in the cooked pasta and continue to cook for about 1 minute, or until warmed through. Remove from the heat and let it rest for 5 minutes before serving. It will continue to thicken a bit as it rests.
Garnish individual servings with Parmesan, if desired.