I sub at the elementary and have for 8 years. My children are out of elementary now so I don't buy for all their teachers.
The best ones we would do were gift cards, movie tickets or even gas cards.
I have seen on the teacher's desks so many knick-knacks, etc that are teacher themed...imagine if it is an older teacher if she gets say 5 at Christmas and 5 at the end of each year. Too many.
The soap, lotion, candle ideas are good BUT do you know what scent the teacher likes? What scent you like might not be what someone else likes...while you like the cinnamon scent candle the teacher might like something else or might not even burn candles. The same goes for body lotion or smelly soaps. I have allergies and any scents can set off my allergies (I can't stand walking through the perfume department--literally takes my breath away at times).
Christmas ornaments are the same as knick-knacks...imagine how many each teacher has. Same goes for Xmas hand towels, etc. Unless you know the teacher well and her/his home decor they might not get used.
For food--do you know if the teacher has food allergies. In all honesty I can tell you many teachers will leave the cookies they receive in the teachers lounge for everyone to eat. What if you bake peanut butter cookies and someone in the teachers family has nut allergy. Also, the teacher might have a health issue or be trying to lose weight and might not be able to enjoy the treat you baked. Maybe a fruit basket would work but the homemade or even bought cookies, breads, cakes, etc might not be a good idea for one who is watching weight, diabetic, cholesterol issues, etc.
I had no problem asking teachers if there was something special they needed for classroom---as mentioned by so many they have to buy things with their own money to teach our kids--ask about an electric pencil sharpener, paper cutter, box of craft supplies. The board game idea was fantastic too for the indoor recess.
These are things I have learned over the years. No teacher is ever going to be ungrateful for any gift they receive but think before giving a food item, "teaching" themed gift, Xmas themed ornament, smelly lotion, smelly candle, etc. Imagine how many picture frames a teacher has too..... Giving something practical is the best way to go...let the teacher get the themed or home decor or ornaments or smelly items themselves.
It doesn't have to be a big gift either...even a letter from your child saying how much they enjoy their class and the teacher!
I did give gifts to the 'specials' teachers (p.e., art, music, computer class, spanish class, principal and the secretary). This was at elementary level because they do teach our children also and let me tell the person who says they only give to teacher who knows their child's name...these teachers know every child's name they teach or work with! Even as a sub after a couple times in the same class I can pick up on the kids names and you'd be surprised the looks when the sub comes in and knows their names...I even will say 'hi" XXXX name when I see them at the store.
EVEN VOLUNTEERING IN THE CLASSROOM OR IN THE SCHOOL WOULD BE APPRECIATED AND WOULDN'T COST YOU A THING!