Exactly. It is a convenience operator that lets you do:
f x $ g y $ h z
instead of
f x (g y (h z))
As for whether you should write:
foo = f . g
or
foo x = f $ g x
..go with whichever looks clearest and nicest to you. In most cases where you are just taking one argument and applying some functions to it, it's nice to omit the x. But in more complex cases, it may make your code harder to read and modify. See
http://www.haskell.org/haskellwiki/Pointfree (and Problems with "pointless" style.)
I personally always use pointfree where I would've required a lambda expression, e.g.:
f (g . h) y
instead of
f (\x -> g $ h x) y