For WEIGHT GAINER, ProLab's nLarge 2 is the best out there. Each serving will set you back roughly 700 calories. Most of the calories come from protein (about 46g in 600 calories), dietary fat, and maltodextrin (which isn't a bad carb, not for putting on weight).
However, I caution you against using weight gainer while you are not working out. It's very, very potent, and 80g of maltodextrin can go a long way to putting on a lot of weight.
For pure protein, I perfer Optimum's 100% Whey. The quality isn't the highest (its mostly whey concentrate) but it does the job well, for cheap. Each serving sets me back about 220 calories + milk, and that includes about 50g of protein (about 200 of those 220 calories do come from the protein). Right now, I'm taking that and not weight gainer because I'm trying to get cut for summer, but during mass-gaining weeks I do see results with nLarge 2.
A daily multivitatmin is cheap and does help.
I also take creatine -> it leads to pretty good strength gains. But then again, I'm a powerlifter.
Cheers.