Often beginners don't know where to begin when given an assignment. They may stare at a blank screen with a blank look. Once they start typing they may make many errors and become frustrated.
Block based languages can help with this as they normally have a UI that shows all of the options that are available at a given moment. The UI itself serves as a prompt for what might be added to that nasty blank screen. It also provides things such as correct spelling and correct nesting of elements as well as (possibly) giving error highlighting and correcting as well as pretty-printing.
Block based languages need not be especially limited. I have built and used such systems that create and show a textual version of the program and it can be in a real language or in some subset suitable for beginners. The user can, for example, create Java classes, methods, statements, including structured statements, etc. It is challenging, though not impossible to build such as system that gives complete access to the standard libraries as well as the complete language.
Such systems can keep a structured form of the program (e.g. a parse tree) as the internal structure and can therefore produce the output in various formats such as text and structure diagrams. This is relatively easy to do as the user enters structures directly.
Additionally, such a tool can be used to storyboard an application, creating the class structure with key methods and then take its output, which can be just text, into a more full featured IDE.
One of the problems that novices have with learning programming is that, too often, they are asked to write when they have never read any interesting programs. Reading good programs is a good way to help people understand program structure and good style. But few courses are taught that way. A block-based tool is, in my mind, a sort of intermediate point between the extremes of reading little before writing and reading a lot first, since the available options are visible and it is difficult to make a low-level (lexical or syntactical) mistake.
Finally, such systems are normally (though not always) built in such a way that the learner can get near immediate feedback from the execution, with compilation, etc. handled automatically. If the program being written is graphical in nature this can be a big motivator.