Thomas Miconi is on the right track with his idea of "the difference between terrorism and resistance is one of whether or not the group in question intentionally kills innocent civilians".
The problem is, we need an adequate definition of civilian. The classic military definition, that is, "one who is not employed in an armed force" does not necessarily apply. Besides this, it can be argued that "civilian" is itself a relative term, defined by the conflict taking place.
Therefore, to refine Thomas Miconi's argument, I propose defining "civilian" as "any person not directly involved in the conflict in which the fighters are participating". In this way, to use ymelup's example, Jewish settlers in the West Bank are not considered "civilian" in the context of the dispute over the occupation of that region. Even though they are technically not employed in an armed force, they willingly and voluntarily enter the conflict, knowing and accepting their role as pawns in the game. However, by the same token, an Israeli commando stationed in Tel Aviv does not necessarily directly participate in the conflict between Palestinians and Israelis in the occupied territories, and so relative to that conflict he could be considered a civilian even though he is employed in an armed force.
If the term "civilian" is defined thus, then the difference between terrorism and resistance is more clear. A resistance movement will seek to fight only those who are actively fighting them, and leave everyone else alone. If a non-combatant dies, then it is purely accidental, and never by the resistance movement's design. On the other hand, a terrorist does not care whether or not the people he harms are the people he is actually fighting against, and might even go out of his way to harm noncombatants.
In short, terrorism is not defined by one's cause, or even one's method. It is defined solely by one's targets, and the line can be clearly drawn.