Java makes it possible to write database-neutral code. It allows you to reuse existing code and dramatically increase productivity.
One thing I find Java Stored Procedures useful for is File IO. Java has a far richer set of File IO capabilities, allowing developers to remove files, add directories, and so on, as compared to Oracle's UTL_FILE package.