They never go away, they just fade. Lasers can fade them on some people, but not completely, and its ridiculously expensive. Some people have some reduction in them for Strivectin.(Although their product definitely doesn't change the appearance of facial lines)
No cream or lotion that you rub in your skin will prevent or fade the stretch marks. The best way is prevention. If a woman is pregnant and gains weight fast enough to cause stretch marks she is eating too much or retaining too much fluid.
Stretch marks are rips in the underlying collagen matrix, in effect, they are scars.