Grease and line an 8 in / 20.5 cm cake tin, and preheat the oven to 180°C / 350°F / Mark 4. Cream the butter and sugar together until pale and fluffy. Beat the egg yolks in a heatproof bowl set over a saucepan of hot water until light and foamy. Whisk the egg whites. Mix the egg yolks into the creamed mixture, and then fold in the flour, ground almonds and Amaretto or almond essence, if using. Lastly, fold the egg whites very gently into the mixture, which should now have a dropping consistency. Spoon it into the prepared cake tin and level the top, making a slight depression in the centre. Arrange the almond halves on top, or simply scatter the flakes at random. Bake for about 1¼ hours or until a warmed skewer inserted deep into the middle of the cake comes out clean.