Heat olive oil over medium-low heat in a large pot. Once hot, add onions and season with salt. Cook the onions, stirring occasionally, until soft and starting to turn golden brown, about 15 minutes. Add the garlic and cook for 1 more minute, stirring to avoid burning the garlic.
Stir in the tomatoes and chicken stock. Season generously with kosher salt and freshly ground black pepper. Bring the soup to a boil, then lower heat to maintain a simmer for at least 15 minutes.
Purée mixture in a blender. Return mixture to pot. Stir in the cream and basil and let simmer for at least 15 minutes. Garnish with Parmesan cheese and basil. Serve immediately.