Properties aren't analogous to public variables. Better to think of them as shortcut methods that return a value.
To answer your direct question, yes, the primary benefit is that you can control get and set through the specified code blocks. Further you can provide only a get (read-only), and you can use access modifiers (as of C# 2.0) to, for example, have a public get and a protected set.
I used to be pretty much on the fence regarding properties, and they've come in for a lot of criticism. I think once you get used to the syntax they allow you to do some useful things. For example, if a particular value of a type is calculated at runtime from other values, perhaps by applying business logic, then I will place that calculation in the get{} block of the property. You can do the same thing with methods, but this way you provide a nice, easy to apply syntax for consumers.