Place a heavy-bottomed pot over medium heat. Add butter to the pan. When the butter foams, add the onion and 1/4 teaspoon salt. Sautée until translucent.
Add the celery and carrot and sautée for two minutes, until they have softened some.
Next, add the garlic and sauté until fragrant, about 1 minute.
Add the ground beef and pepper. Brown the beef, breaking it up with a wooden spoon as it cooks.
Once the beef has browned, add the milk, wine, and the remaining 1/4 teaspoon salt. Stir occasionally and simmer until the liquid has evaporated completely, about 30 minutes.
Add the crushed tomatoes. Mix until incorporated. Lower the heat as soon as the tomatoes come up to a simmer.
Cook, uncovered, for 3 hours. Stir occasionally. If the sauce dries out, stir in a half cup of water. Once it is finished, taste for salt and pepper.
*Garlic is not a traditional ingredient. I added garlic to my recipe to create dimension since our sauce does not simmer all day and does not contain pork. If you want to keep it strictly traditional, omit the garlic and let the sauce simmer for a few more hours.**I use an 80/20 ground beef. Lean beef does not work well for this recipe.***I use white wine, but either red or white will work. But if you use red, the sauce must cook for longer to mellow the flavor. White wine cooks down much faster, which is why I used it in this recipe. If you don't want to use wine, substitute it with white grape juice with a bit of white vinegar.****If you want to use fresh tomatoes, you'll have to puree the fresh tomatoes first and double the cooking time on the sauce.