Heat the olive oil in a large pot or Dutch oven over medium heat. Add the chopped onion and cook until softened, about 5 minutes.
Stir in the minced garlic and cook for another minute until fragrant, being careful not to burn it.
Add the uncooked pasta, broth, and diced tomatoes (with their juice) to the pot. Stir everything together to ensure the pasta is submerged.
Bring the mixture to a boil, then reduce the heat to medium-low, cover, and simmer for about 10-15 minutes, or until the pasta is al dente and most of the liquid has been absorbed. Stir occasionally to prevent sticking.
If using, stir in the heavy cream. Cook for another 1-2 minutes until the sauce has thickened slightly.
Remove from heat. Stir in the Parmesan cheese, salt, and pepper. Taste and adjust seasonings as needed.
Garnish with fresh basil and serve immediately with extra Parmesan cheese.