Father Christmas is a must - doesn't always make masses but is a big draw.
Chocolate tombola - get donations so no cost to you.
Jam-jar tombola - encourage children to bring in a jam-jar full of little items (wrapped sweets, crayons, stickers, small toys, smellies, hair things etc). Again, no outlay. Perhaps give a prize for the best-decorated jar.
Some years we have a present stall/room where children pay about £1, choose a present for mum or dad and it's wrapped there and then so it's all a surprise for the adult. You need people willing and able to wrap under pressure though - it's quite hard work.
Raffle - big money-earner. You can ask for donations, but usually get a lot of rubbish as well as some good stuff. What we tend to do is a couple of weeks beforehand, we have a 'mufti day' (non-uniform day). Ask for a donation of 50p or whatever per child, and use the proceeds to buy fewer, but really decent raffle prizes. We always find that some parents send in the 50p and still donate some choccies or a bottle of wine. And no dented or out-of-date tins!
Children's stalls - give staff plenty of warning about this one! Ask each class to produce something to sell (i.e. one item per child). Each class does something different - night-light or candle holders, Christmas decorations, a sheet of 'wrapping paper' made by the child, home-made biscuits wrapped up prettily. On the night, parents then come and buy their own child's item - prices usually range from 50p to £1, depending on what the item is. Great emotional blackmail! Parents who don't go on the night can buy them the following day in school.
Lots of side-show type games - coconut shy, guess the name of whatever, guess the number of (wrapped) sweets in a jar, fit the right key to the safe. Knock Santa down the chimney - home-made game using decorated box for the chimney, complete with cotton-wool 'snow' on top. Get a suitably-sized toy Santa and give each child 3 'snowballs' to throw. Small prize for knocking Santa down chimney.
Lollipop game is a good one - get a cardboard box, turn it upside down and make holes that you can poke lollies through. Decorate box. Fill the holes with lollies - most of the sticks (which of course can't be seen from the top) are left plain, some are painted (or use coloured tape). Child pays 25p, if the stick is plain they get to keep the lolly, coloured sticks win a slightly better prize. Buy the jars of cheap lollies (each lolly works out about 5p each), so decent profit. Not good for teeth, but hey it's Christmas!
Face-painting always goes down well.
Get the school choir to sing for 10-15 mins - adds to the atmosphere and of course gets the choir (and their families!) there on the night.
Lucky-dip - small things priced at 40-50p. Again, doesn't make masses, but kids like it.
Bottle tombola - strictly adults-only, so make sure you have this clearly marked and don't let kids walk off with alcohol. Charge more for this tombola, because the prizes are better - although we put some 'booby' prizes in too, like ketchup bottles.
Baker Ross catalogue is good for lots of bits and pieces. If you don't want to buy Santa's pressies yourself and take the risk of being left with them, try www.partiesinthebag.co.uk - you order wrapped or unwrapped pressies in different age-groups, on a sale or return basis. You keep commission on any 'sold'.
Refreshments - one of our biggest earners. Hot dogs, crisps, mince pies, teas and coffees, juice or squash.
Cake stall - a must at our school!
Get loads of volunteers, not just to man stalls but to set up and clear up afterwards. Get as many teachers involved as possible, it's good for the atmosphere and kids like to see their teachers at a school event.
The things that don't work for us are the stalls like second-hand toys, books etc. You tend to not make much money and get left with everyone's rubbish.