Heat the butter and oil in a large skillet over medium heat. Add the garlic and onions and saute for a minute or so. Pour in the tomato sauce, add sugar, salt and pepper to taste and stir. Cook over low heat for 25 to 30 minutes, stirring occasionally.
Cook the pasta according to the package directions. Drain, reserving 1 cup of pasta water.
Remove the sauce from the heat and stir in the cream. Add cheese to taste, then check the seasoning. Stir in the pasta and thin with a little pasta water if needed. Add the chopped basil and serve immediately.