Don't try to be clever.
Don't confuse cleverness with elegance.
Don't optimize prematurely.
Your code isn't cleaner without those pesky comments.
Good comments are much better than none, none are better than comments that lie.
Use revision control, and look at your diffs before you commit along with the comments. Did you update the comments when you changed related code? Is the change what you meant and what you say it is? Make sure you did these before committing.
Don't use block comments to remove code. Just delete it, that's what revision control is for. Grepping for things is much harder if half the results are actually commented out.
If you notice a flaw in your approach, don't be afraid to delete everything and start again.
Do you have access to code written by better coders than you? If so, read it.
Have you written the same or a very similar line of code before? If so, you should try to do this task in a function.
Do not use goto. Discipline is important. If using a goto will save you 20 lines of code, don't do it. 200 lines? Don't do it. Typing is easy, thinking is hard. Saving LoC while sacrificing readability and understandability is not worth it.
Spend more time thinking and with paper and pen than you do now, and less time in your code editor.
You should be able to improve something you wrote a week ago, be a bit unhappy with something you wrote a few months ago, a bit embarassed by things you wrote 6+ months ago, and ashamed of things you wrote a year ago. That's just how it goes if you're getting better. Design your objects on paper before you start coding.
Code your classes with a driver to test them. When they work, then start wiring them up to actually perform the task.
If you're up against a hard problem, throwing more code at it won't help. You'll solve the hard problems in the shower, in the car, eating dinner, etc.
Have others review your code. They will look at it differently than you do. Take their critiques in stride, they want you to get better.
Otherwise, it's just time and practice. Books are nice, but you're not going to break habits reading a book, you have to do things right over and over.
-Lee