When I was a high school student, my mom always wanted me to bring gifts to my teachers at the end of the year, and I was too embarrassed to do it. I can hear it in my head: "But, mooooooommmm ..."
Now that I am a high school teacher, I personally understand how much my high school teachers would have appreciated it had I not been so self-conscious. I have friends that teach in elementary schools that tell me how many awesome gifts they received at the end of the year, but I can't say the same. I'm lucky to get one gift in total for the year! I have been extra lucky this year. One student got me a $5 gift card to Culver's, and two students who went to Disney over Thanksgiving and Christmas each brought me back some Goofy Gummies (which I guess weren't gifts since I paid them to do it... but it was still very nice!).
Please don't forget middle and high school teachers. We certainly don't have it easy. None of us do... despite what the media will tell you. (Here I am, taking a 10 minute break from my Sunday fun day of grading assignments and writing final exams.)
I agree with everybody here - gift cards are the way to go. They might seem impersonal, but they are likely the most appreciated gift of all.