My wife's been a teacher for many year, so let me answer from our perspective: absolutely, unquestionably, A. Cash and a nice note means far more than a gift certificate or a cute gift, and is more practical than a check.
Even for smaller amounts - $20, $25, whatever. Even a little gesture of application towards a teacher means a world to him/her.
With cash I could do whatever I like with it, whenever I like. It's a gift that is the most practical, the most useful, and therefore the most appreciated.
A check on the other hand, while just as useful as cash, has its drawbacks. For example, we once had a check bounce. What were we supposed to do? Ask the parent for a new one? Ask them to pay the fee?...
Gift certificates often have all sorts of arbitrary limitations, again making it less useful. And thats besides the obvious fact that they could only be used is one specific Judaica store or whatever.
And a gift, as a general rule, is useless. It may be "cute", it may be thoughtful, but in the end I'd rather you just gave me the cash you spent on it. Do you know how many towels we have around the house with my wife's initials on them, but that do not actually dry your hands at all? Do you know how many witty mugs collect dust? And just how many makeup bags can one person use?
A caveat and a note:
1 - Gifts could be a great idea when the entire class gets together to chip in for something relatively big or expensive. Instead of being a little, useless knickknack, these are usually very well thought out and useful things. (I'm not saying that I wouldn't prefer the cash here as well, but it's quite nice to get something really nice that you wouldn't otherwise get.)
2- If you can't afford to give something to a teacher (Heaven knows how these things stack up between a couple of teachers/bus drivers/whatnot), just send in a nice note. It's incredibly appreciated as well. Teachers work hard with each and every child and few things are better than hearing that their work is appreciated.