Cook the shells according to package directions. Reserve 1 cup of pasta water before draining.
Heat butter and oil over medium heat. Add onions and garlic and saute for a 3-5 minutes until translucent. Add the garlic and cook for an additional 1 minute. Pour in the marinara sauce and add salt and pepper to taste. Stir and cook over low heat for 25 to 30 minutes, stirring occasionally to make sure nothing sticks.
Turn off the heat and stir in cream. Add the parmesan to taste, and season to taste. If the sauce is still quite thick, add a few tablespoons of the reserved pasta water to thin to out. Stir in the cooked shells and garnish with basil and serve immediately.