In order to gain body weight you need to eat at least 400 extra kcals daily to gain one pound of lean body weight (muscle) per week. Too easy, right? Wrong. Our bodies are designed with a thermoregulatory mechanism in order to maintain homeostasis. This means that your body "knows" how much energy (read: kcals) it needs daily (plus or minus 400 kcals) in order to feel comfortable. Thus, in order to gain weight, you will need to make a conscious effort to eat not only more food but food which is calorically dense.
The best way to gain quality body weight without gaining fat is to eat less saturated-fattening foods and instead eat higher-caloric versions of healthy foods such as dense cereals like oatmeal (rather than flake cereals), starchy vegetables like corn, peas, potatoes (rather than watery vegetables such as lettuce), tuna in oil (rather than in water), whole milk (rather than low-fat milk), nuts, seeds, avocados, and fatty fish (e.g., salmon, mackerel). Eat a larger portion size of these foods per sitting and eat these foods consistently (i.e., every 3 to 4 hours). Also, to ensure the weight gained is mostly lean body weight (muscle) and not fat, be sure to perform strength training. This last point is essential as eating more food without exercising will inevitably cause fat weight gain rather than muscle weight gain.
Brian Danley, CFT
"Motivation is what gets you started. Habit is what keeps you going."