Melt the butter with the oil over low heat in a heavy saucepan. Add the onions and cook until softened, about 10 minutes. Add the garlic and cook, stirring, for 3 minutes. Sprinkle the allspice over the onions and cook for another minute.
Add half of the dill and cook over low heat, stirring, for about 5 minutes. Add the chicken broth, tomatoes, and sugar. Add salt and pepper to taste. Simmer, partially covered, for 20 minutes.
Puree the soup in a food processor. Return to the pot and stir in the remaining dill. Add salt and pepper if necessary.
Serve hot, or chill several hours or overnight and serve cold. Garnish each serving with a dollop of sour cream.