The hull of my boat is always waxed and I really don't get to much if any staining. I did however leave my inflatable in the water for a few weeks and got enough staining to illustrate the process.
This is easy and is safe for gelcoated hulls. While I have used acids on LPU paints I don't suggest it unless you are really, really, really careful.
To clean waterline stains I use MaryKate On & Off Gel. This is a HUGE improvement over the regular non-gel On & Off. It's also a lot cheaper and stronger than Davis FSR stain remover but works similarly. It also has much less "acid" odor than the regular On & Off. This is a great step to do before waxing a boat and it will whiten up most any old tannin/rust stained hull.
Always wear rubber gloves, this stuff is acid, and use cheap chip brushes to apply. This whole process on my inflatable took less than 10 minutes and requires NO rubbing. Simply apply with the chip brush and watch it eat away the stains. Regular oxaic acid, or oxalic acid crystals mixed with water will work too, and is slightly cheaper, but it tends to drip and run and can eat the copper out of bottom paint. The gel stays put for the most part with considerably less dripping.
Before:
The Products:
During:
All Finished: