Cut an 'x' on the bottom of each tomato. Fill up a large pot halfway with water, and bring to a boil on high. Place tomatoes into the boiling water and leave for 3-5 minutes. (Don’t overboil.)
Transfer tomatoes into a medium-sized bowl with cold water and ice cubes, and leave for a couple of minutes. Skin tomatoes with fingers or a knife keeping as much tomato meat and juices as possible, and transfer to a dry bowl. (Discard skins.) Squeeze each tomato until it's falling apart while keeping all the juices. Cut up remains with a knife.
In a large pot heat up oil and butter on medium. Add garlic and onion (if using it) and simmer. Add the tomatoes, and continue simmering, stirring often. (You can mix the herbs and seasonings in now, or at the end of cooking.) Cook for 40-45 minutes. Bring the temperature down to low.
If you haven't, add herbs and seasonings, and simmer the sauce on low for another 30-45 minutes, or until ingredients have reduced and liquid mostly evaporated, frequently stirring. (Total cooking time is between 70-90 minutes or until your preferred sauce thickness.)
(Optional) For a smoother, creamier sauce, blend down more with an immersion blender.
Serve over pasta, polenta, or rice, or use it as a base for lasagna. Store in the fridge for up to 3 days or in the freezer for up to 4 months. Reheat using your preferred method. (Look at the article for jarring instructions.)