Boil water for your pasta and cook it al dente according to package directions.
Meanwhile, in a skillet, sauté the onion in the olive oil for 5 minutes over medium heat (ok if it browns a little).
Add the beef to the pan and cook it until it's browned, breaking it up with your spoon as you go along (about 5 minutes). If there's a lot of excess fat, spoon most of it out.
Stir in the garlic and chili powder, then add the tomato sauce and beef broth. Give it a good stir and cook it for 4-5 minutes or so (reduce the heat so it's gently simmering). The sauce should reduce a bit, but don't let it go dry.
Stir in the cream and season with salt & pepper as needed. Let the cream warm through and then toss with the drained pasta shells. Serve immediately.