For your system, depending on its size, I could suggest you to use at first glance Pople basis-set with diffuse and polarization orbitals (6-31+G*, 6-31++G** ...). In my opinion, I advise the use of Karlsruhe basis-set (Def2-TZVP, Def2-QZVP...).
I think this article could be of interest for you:
There is no thumb rule to apply here. If you are dealing with traditional H-bonding then using B3LYP or X3LYP with a double zeta basis generally yields reasonable structure (and some time energies, too). If you are looking for non-covalent interactions then please read literature for such.
Choice of a basis set depends on the type of calculation.
Hydrogen bonding is not a question of the basis set but of the functional/method.
In DFT you need dispersion correction which is not depending on the functional. If your system is small you should compare with correlated methods. Dispersion arises from the interaction of excited states which are not included in DFT.
First choose a method, then decide how large your basis set can be.