If using fresh tomatoes: Bring a large pot of water to a rolling boil. Fill a large bowl halfway-full with ice cubes and cold water. Using a sharp knife, cut a ¼-inch deep X on one end of each tomato. Place the scored tomatoes into the boiling water and cook until you see the skin starting to wrinkle and split, 1 to 2 minutes (be careful not to cook too long, or the tomatoes will become soft and difficult to handle). Using a slotted spoon, lift the tomatoes out of the pot and plunge them into the ice-cold water bath. Let sit for a few minutes to cool, then transfer the tomatoes to a cutting board and, using your hands, peel off their skins.
Cut the tomatoes into ½-inch chunks (discard the cores at this point) and transfer them, along with all of their juices, into a Dutch oven or saucepan.
To the chopped tomatoes, add the butter, olive oil, onions, garlic, salt, and sugar. Bring to a gentle boil, then reduce the heat to low and simmer, uncovered, for 1½ to 2½ hours, stirring occasionally and mashing the tomatoes, until the sauce is no longer watery. Remove and discard the onions. Using a wooden spoon or potato masher, mash any large chunks of tomatoes and garlic to make a slightly chunky and thick sauce. Taste and adjust seasoning if necessary. Before serving, stir in the basil.
Make-Ahead Instructions: The sauce can be refrigerated for up to 4 days or frozen in an airtight container for up to 3 months.