I consider any language which does not have gotos simply crippled.
Gotos are bad if you have retarded labeling systems (coding on a graphing calculator in BASIC *shudder*) or if you jump all over the code like a kid with ADD.
But they are great for things such as nested loops.
Simple example:
I have an array with ten values which I scan through. If a value in the array matches an expression/whatever, the whole loop can be skipped and a small amount of code following the loop (which would be executed by default if the loop fails to find something) can be skipped as well.
With Java you can break out of the loop but you would still need to set some stupid variable etc. in order to ignore the code right after the loop.
Feel free to correct me on this situation. I have been using exactly this for a game I am creating so I think gotos have been very valuable. Then again, I am coding everything in C so there might be OOP equivalents.