Cut off the leafy tops and bases from each head of celery and wash thoroughly in cold water. Remove any coarse outer stems and trim the heads to an even size. This should include all the heart and some stem – cut each heart of celery in half. All discarded pieces of stem should be shredded coarsely and reserved. Blanch the celery hearts in boiling water for 10 minutes – this removes all bitter flavours.
Melt the butter in a large saucepan and add the shredded celery and washed sliced tomatoes. Season with salt and pepper, then place the blanched celery hearts on the top. Add just enough stock or water to cover the vegetables in the base of the pan. Cover and simmer very gently for one hour, until the celery hearts are quite tender.
Lift the hearts from the pan and place in a hot serving dish. Pass the cooking liquor and the soft parts of the vegetables – mainly tomatoes – through a sieve and return to the saucepan. Boil rapidly until reduced by half. Check the seasoning and pour over the celery hearts to glaze. Sprinkle with chopped parsley and serve.