I often try to show that a subgroup contains another subgroup known to be of finite index. There are various refinements. One technique is to prove that your subgroup contains an intersection of a finite number of subgroups, each of which is known to have finite index. For example, suppose you know that the central quotient G/Z(G) of a group G is finite. (One way to show this is to show that G is a union of finitely many abelian subgroups.) If it is too hard to show that your subgroup H contains the centre, but you can show that H contains the intersection of Z(G) with the derived subgroup [G,G] of G, then the index of H in G is finite.
Another idea is to try to show that (e.g.) every nilpotent quotient of your group is finite, and then show that your subgroup must contain some term of the lower central series. (You could replace nilpotent with soluble and the LCS with the derived series, and so on.)
This may not count as a general method; perhaps it is more of a "trick", but I've seen it used to good effect in proving some commutativity theorems for groups and rings. If you can show that your subgroup is a union of (at most) two subgroups known to have finite index, then you are done.

