Well, I myself am a big fan of the Lua scripting language, and for some time now have integrated it into every project of mine, and even wrote a couple little games exclusively in Lua, although speed issues kept this from becoming really workable.
In my opinion, embedding a language like Lua presents several clear benefits for roguelikes. Firstly, it allows for more intuitive, flexible data files to contain various types of game data. Many RLs use data files for storing things like monsters, items, etc, and the benefit of this is *almost* universally agreed upon, so I won't waste time arguing *why* you would want to do this, but how scripting can make it better.
First of all, with traditional data files, you have to write a parser to read and load all the game data. This presents its own set of problems, including many potential bugs, caused by either the parser, or a typo in the data file. By using a script instead, you can more intuitively load this data, and any error will be easy to trace, down to the exact line. Also, by scripting data files, you can take advantage of conditional statements and other programming constructs that are impractical to implement with a traditional data file.
One example of how conditional statements in a data file might be useful could be in the case of revising content in a future update of your game. Let's say that in v1.0, a kobold has an attack rating of 5. You soon realize this makes them underpowered, so for v1.1, you decide to increase it to 8. Now, normally, you can just overwrite the old value and forget about it. But what if the player updates your game to v1.1, but is still playing a savefile from v1.0? Now, suddenly, all the kobolds magically become stronger, which may break game balance for that version. Using a scripted data file, you can conditionally load different versions of the same data by checking for the version of the player's savefile. Problem solved. Obviously, there are many other useful things that can be done with scripted savefiles.
And, on the note of savefiles, using a script for savefiles also makes things easier. You can simply write the savefile as a script that automatically loads the game data. This makes the savefile human readable by default, which can be *immensely* helpful for debugging and balancing your game. And, if using a language like Lua, you can compile the script to bytecode if you want to, to prevent the player from reading or altering the data.
I've also found scripting to be useful for higher level AI implementation. Since developing any reasonably decent AI involves a lot of trial and error, and constant minor tweaking, using a script for this makes the process much quicker. If you do this, though, I highly recommend putting all of your lower level AI routines in your engine, for speed reasons.
Dungeon generation, also being a trial and error process, can also benefit from this boost to development speed.
One of the most obvious benefits is that it allows others to modify your game, without being competent C/C++/Java/whatever programmers. Editing monster values in a script is pretty easy for a beginner.
All in all, I'm very much so in favor of scripting, and I see ToME as being a stellar example of the potential power of a C (or C++, not sure) engine, with Lua scripting capabilities.
If you're serious about adding scripting to your game, I highly suggest you check out Lua. It's definitely one of the fastest available, is comparatively painless to embed (at least compared to certain other languages), and has, in my opinion, awesome capabilities. It's a very simple, easy to learn language, but extremely powerful, through the use of its rather phenomenal tables data types.
Anyways, just my two cents.