Unless the crankarm is cracked you can salvage it.
Typically the crank arm bottoms out on the flared portion of the spindle (where it goes from square to round). If this is the case you can rework the crank to remove some material from the crank arm in this area. The two options would be to add a generous chamfer on all four sides of the spindle hole (flat file or dremmel) or to remove material (1/8") from the inside face of the crank (grinder or hacksaw).
The intend is to allow the worn crank arm to slide further up the taper to a point where it is making good contact with the taper.
I have done both methods on seperate bikes and have had no more loose crank issues on either.