Cook the spaghetti according to package instructions in a large pot of salted boiling water until al dente. Drain and set aside.
In a large skillet, heat the olive oil over medium heat. Add the chopped onion, garlic, carrot, and celery. Sauté for about 5 minutes, or until the vegetables are softened.
Add the ground beef to the skillet and cook until browned, breaking it apart with a spoon, about 5-7 minutes. Drain excess fat if necessary.
Stir in the crushed tomatoes, tomato paste, oregano, basil, salt, pepper, and beef broth. Bring the mixture to a simmer and reduce the heat to low. Let it simmer for about 20 minutes, stirring occasionally.
Taste and adjust seasoning if needed. Serve the sauce over the cooked spaghetti and top with grated Parmesan cheese and fresh basil leaves if desired.