Melt butter or margarine in a saucepan. Add celery, onion, and carrot; lowly sauté until lightly brown. Blend in flour, peppercorns, bay leaf, cloves, and tarragon.
Cook over low heat until ingredients are well blended. Add tomato puree and continue to cook over very low heat for about one hour, stirring occasionally. Strain through a fine sieve.
Add beef or chicken stock and bring to a boil. Add salt, pepper, and cream. Serve hot.