In a large pot or Dutch oven, brown the ground beef over medium-high heat. Drain off any excess grease.
Add the chopped onion to the pot and cook until softened, about 5-7 minutes. Stir in the minced garlic and cook for another minute until fragrant.
Pour in the crushed tomatoes, tomato paste, and water or beef broth. Stir well to combine.
Add the dried oregano, dried basil, salt, black pepper, and red pepper flakes (if using). Stir everything together.
Bring the sauce to a simmer, then reduce the heat to low, cover, and let it cook for at least 30 minutes, stirring occasionally. For a richer flavor, you can simmer it for longer.
Serve hot over your favorite cooked spaghetti.
Notes
This sauce can be made ahead of time and stored in the refrigerator for up to 3-4 days, or frozen for longer storage. It tastes even better the next day!