Well,
'non-flat' terrain can mean any number of things.
1: undulating terrain - which would just be bumps on the grounds surface. Look at a displacements tut. You basically 'paint' the bumps in 3d.
2: hills/cliffs. - make them out of brushes and edit verts, or displacements (see above point).
then just practice using those techniques. A lot of mappers have tons of 'unfinished maps'. Stuff we start on, practice techniques, throw away and then work on something better using what we learned.
-----
Making things look realistic. Well, that's a whole can of worms, a loaded question. Very broad and vague too.
What things? etc...
Mainly just look at Valve maps, see what they did. Read tuts (a great one is the scale tut, it tells you what dimensions to use for brushes, what heights player can jump, etc...) < really important for good gameplay.