Keeping plants planted is often relative to the type of substrate you use as well as the plant you wish to keep planted.
Pea sized gravel or smaller is usually recommended for those wishing to use gravel. There are several plants with extensive roots which give plenty of anchoring ability even in regular gravel. However, there are a great deal of plant species which will never be able to stay planted in regular gravel without a large amount of help, and some not even then.
Plant weights can be very damaging. More often, a person will find that you can easily crush the stem of the plant if you are trying to keep stem plants weighted. Sometimes you will also have the additional problem of not being able to weigh down just a single stem so you'll bunch the stem plants together which may cause some shading issues. Often a person will find that the plants will rot near the site of the weight either from being crushed a bit or shading too much.
The best overall fix, however, is to use substrate appropriate for the plants you want to keep, and the right depth of that substrate. Also, if fish are such that they won't allow for certain plants to stay planted, one or the other has to leave the tank.