Melt butter and olive oil in a large pot over medium heat. Add onion, carrot, celery, and a pinch of salt. Stir for 5 minutes, or until the onion is translucent. Add ground beef, breaking up the meat into small crumbles, and cook until no longer pink, 5 minutes. Add salt and black pepper to taste.
Add milk and bring to a simmer, stirring until most of it has reduced, 5 minutes. Increase heat to medium-high and add white wine. Simmer, stirring constantly, until the sauce has reduced, 4 to 5 minutes.
Add tomatoes to a large bowl and use your hands to crush them into chunky pieces. Add the tomatoes and 2 cups of water to the pot. Stir the mixture and bring to a boil. Reduce heat to a low and simmer, stirring often, for 3 hours, or until the sauce thickens. Add salt and black pepper as needed.