One very important aspect which took me long to figure out: to make a city grow, arrange some inner-city transport. In my first attempts, I would just build a nice station and transport passengers to other cities, and then wonder why the city never became larger. Only with multiple stops, this will happen.
What also helps speeding the process up is building roads for them. Preferably in a chessboard structure. Two-by-two squares for houses, then road again.