In a large pot over medium high heat, melt the butter. When the butter is melted and bubbling, add onion and garlic and saute until the onions are soft, about 7 or 8 minutes.
Add the all-purpose flour to the onions and stir until very smooth, about 1 to 2 minutes.
Gradually add the chicken stock about a cup at a time and continue stirring.
When all the stock is added, reduce heat to medium-low and add the tomato sauce, stirring well and allowing the mixture to thicken.
When the tomato sauce is fully incorporated, add the tomatoes and the honey, salt, dried dill, dried basil, chili powder, black pepper and any hot sauce you'd like to use.
Allow the soup to simmer over low heat uncovered for about 45 minutes. Stir frequently as the soup will stick to the bottom of the pot.
In the last 5 minutes of cooking time add heavy cream (if desired). You can also just add a tablespoon or so of cream or milk to each bowl when serving if you don't want to add it to the whole batch.
After 45 minutes, your soup is done. Serve and enjoy.
Notes:
Garnish with croutons and/or diced, fresh parsley.