EvilDingo, while procedural languages have their strong points, nowadays, OO is the way to go.
Object Orientation can be said to be about thinking in objects. It really helps to reduce the time needed on analysis ande design, and it makes yer code more robust.
Am sure HiTech will disagree with me: after all, AH is made in C, not C++.
With regards to analysis - well, humans think in terms of objects, not procedures. Take a car, for instance. You don't see a car as a collection of functions or procedures. Rather, a car can be said to be an aggregate object - consisting of other objects. 4 wheels, an engine, a body, a steering wheel etc. You then can encapsulate the data and functionality into the objects and protect that which isn't to be accessed that way. Very nifty.
In yer car, you're given stuff you can do - left and right with the steering wheel, power on/off with yer engine and so forth. Makes it much easier to analyse and encapsulate data, and to place responsibility properly.
And of course there's inheritance and polymorphism - things that are harder to come about with procedural languages.
Me, I'm an OO idiot, Started out with Pascal, but soon learned that if programs grow to any real size, OO is a much handier way for dealing with a problem.
Am probably gonna be flamed by all the old timers now

.