Generally I'll call and thank them for things sent (which are usually clothes or books or something else for the kids). If we're together for a gift-giving occasion such as Christmas, I'll thank them in person. I do occasionally send a general thank you letter just because they've been so generous or after a visit to their home (such as, "We so enjoyed visiting, etc., thank you for your hospitality and for always being such great grandparents, etc., etc."). We were raised to write thank yous and I do for everyone else -- but my mom will be out shopping and find a dress she loves for my girls and have the store send it directly -- this happens almost weekly so we've gotten to a point where it's a waste of paper to write a thank you note weekly. For the kids' birthdays, though, I do have them write thank yous even to the grandparents who may have been present, because it's good practice.
Short answer -- it depends.