Bring a large pot of water to a boil; meanwhile, prepare a large bowl of ice water. With a paring knife, core tomatoes, and score an X on the bottoms. Working in batches, carefully lower tomatoes into boiling water; when skins begin to split (30 to 60 seconds), use a slotted spoon to transfer tomatoes to ice water.
When tomatoes are cool, remove skins (use a paring knife, if necessary), and discard. Halve tomatoes. Remove seeds with a spoon, and discard. Finely chop tomatoes.
In a Dutch oven (or other large pot), heat oil over medium-high. Add onion and garlic; season with salt and pepper. Cook, stirring frequently, until onion is soft, 4 to 5 minutes. Add tomato paste; cook, stirring, until slightly darkened, 1 to 2 minutes.
Add tomatoes, and stir to combine. Bring mixture to a boil; reduce heat to medium-low. Cover, and simmer, stirring occasionally, until thick and saucy, about 1 1/2 hours. Season with salt and pepper. Use immediately, or freeze in airtight containers up to 3 months. Thaw at room temperature or in microwave before warming.