A bill will go through several votes and changes before a final version actually takes shape and gets passed. It'll get voted on in committee, go to the House, go to the Senate, probably get amended along the way at various points and so forth. So technically, a member of Congress may vote a number of times on bill to amend it or strike provisions from it, just not on its final passage.
The problem with Kerry's statement is that basically any member of Congress could use that excuse and say they voted for anything and everything when asked about any old bill. If Kerry had said something to the effect of "You know, I supported the $87 billion at first, but then A, B, and C were put into it and blah blah blah...." this probably wouldn't be such a big deal...at least it wouldn't look as ridiculous. But to me, to say something like "I voted for it and against it" means you think the American public is a bunch of idiots who don't know the difference and I think Kerry is kind of counting on that when he says things like this, even when it's not on purpose. And it just further cements his tendency to waffle.