Preheat the oven to 350°. Spread the almonds in a pie plate and toast for 5 minutes, until golden.
Meanwhile, in a large soup pot, heat the olive oil until shimmering. Add the sliced onions, garlic and celery, cover and cook over moderately high heat, stirring occasionally, until softened, about 5 minutes. Uncover and cook, stirring occasionally, until the vegetables are lightly browned, about 5 minutes longer. Stir in the diced tomatoes and their juices, the tomato paste and sugar and cook for 5 minutes. Add the stock and cayenne. Season the soup with salt and black pepper and cook it for 10 minutes longer.
In a blender, puree the soup in batches. Return the soup to the pot and stir in the heavy cream and orange zest. Simmer the soup over moderate heat for 2 to 3 minutes. Add the butter and stir until melted. Transfer the soup to shallow bowls, garnish with the toasted almonds and serve