I watch higher level games, and I see heroes slow down the creep wave to place it more on their side of the map. When I try it, I can't get the creeps to get caught on my hero. What am I missing here?
When you stand in front of a creep he will try to pass on your left/right side,so you need to adequately move slightly left/right to block him from passing around you.As long as you keep blocking the first creep on the head of the wave,the creeps that follow will block each other.And avoid scattering the wave(with spells,other heroes,courier...) since creeps that are further away from group will have different pathfinding and could pass you from weird directions.
It is best to start blocking near your Tier 2 tower,since at that point your creeps will be nicely lined up.
If you have another teammate in the lane it is best that one blocks the creeps and other one stays further in front of the group.So if a creep bypasses you,your teammate will be there ready to block him,while you go ahead in case creep passes him too.
Blocking gets easier with larger heroes(pudge,lucifer...) since you have to maneuver less,and if hero is slower you will less likely move too far on the sides which could make the creep pass by you and ruin the block.
Pulling you can attack the neutral creeps(side lanes) and lead them close to your creeps on lane making them fight behind your tower and delaying the creeps progress.
Since patch 6.79 creeps in the safe lane have a bonus movement speed for few seconds when they initially spawn,making them harder to block.Watch for more details.
Hero Skills (this is prohibited by some tournament rules)
Earthshaker can use "fissure" on certain places and completely block the creeps from progressing(for the duration).
Furion can use "sprout" to trap the creeps(if you manage to group them enough).
Clockwerk can use "cogs" to trap the creeps(if you manage to group them enough).