im not really an expert on this bit, but i would persoanly move onto either ruby or python, or something like them.
or you could move onto a more advanced visual programing its not exactly visual, but its incredibly powerful. it does 2D and 3D
Almost any language is a reasonable next step after scratch. I think which language is best depends largely on what you're trying to accomplish with that language, or what type of programming you're most interested in doing.
For example, in the CS50 course at Harvard David Malan uses Scratch as a brief introduction before launching into Java programming.
I think Ruby and Python (links above) are also reasonable choices, as is Processing
All of the above also have the advantage of being free and multi-platform.
But the question is really what is the point of the 'next' language? Are you looking to teach object oriented programming - pick something that was designed as an object oriented language (like Ruby), not something with OO added in later (e.g., C++). Do you want the programs you write to be able to run in a browser - pick something like Java or Processing, which can run as Java applets. Processing is also a good choice if you want to do animation and cool visual effects. Interested in 3D simulations? take a look at Starlogo TNG. Want to develop web applications - maybe PHP is a good choice although you can do web applications in other languages like Python and Ruby as well. So basically, I don't think there's any one right next language - there are many of them.
In the end, you'll just need to pick something and see what you can do with it.