Melt the butter in a large pot over low heat. Add the onions and cook gently until soft and translucent, about 20 minutes. Do not brown.
Add flour and stir until mixture is slightly thick and pale good, about 3 minutes.
Stir in the tomatoes and juices, chicken broth, sugar, salt, celery salt, and pepper.
Raise the heat to medium until the liquid bubbles, then reduce heat to low. Simmer for 30 minutes, scraping the bottom of the pan frequently.
Stir in the cream and honey, remove from the heat and purée using a hand blender or allow to cool and purée in batches in the blender.
Return to the pan and add the zest of one lemon and the juice. Do not bring to a boil, just heat through. Serve hot and add a little of the heavy cream if you like.