Dice the carrots, onion, and celery. Thinly slice half of the basil leaves. Set aside.
Heat the olive oil in a large pot over medium heat. Add the onion, carrots, celery, and garlic. Cook until softened but not brown.
Add in the whole basil leaves, garlic, and tomatoes. Bring the sauce to a simmer, cover, and cook for 45 minutes, stirring occasionally and breaking apart the larger tomatoes as they cook.
After 45 minutes, or when the vegetables are tender, remove the sauce from the heat and let rest for 15 minutes.
While the sauce is simmering, fill another large pot with water and bring to a boil. Add salt, if desired. Cook the spaghetti until al dente. Drain and rinse the pasta with lukewarm water to prevent sticking.
Taste the sauce and add salt, if desired. Serve pasta topped generously with sauce, grated Parmigiano-Reggiano cheese, and the reserved sliced basil leaves.