Water based paint or emulsion will not hold back water staining, it softens it and allows it to come through to the surface.
For many years I have used white oil based undercoat to seal staining on ceilings. Allow it to dry then paint with emulsion.
Matt emulsion gives the best coverage. The aerosols are brilliant for touching up small areas.
PS. The undercoat is cheaper than the blockers.