From my point of view interactive rebase provides these features I miss in SmartGit GUI:
Ability to alter commits during rebase, not before, so if anything goes wrong, I still can go back to unchanged original branch easily.
In interactive mode I can quickly prepare changes (reorganize, ignore, squash..) to commits and then start it all at once. Sure I can reorganize commits one by one in Outgoing view, but that's slow (as I need to wait for rebase to finish before I can reorganize another commit and do it x times)
Also there is option to "squash"/"fixup" (they differ just by either appending the log message to the new commit, or ignoring the log message). I read squash should be possible in Outgoing view when I use same commit message for some commit and then move it to another - so that should upply the fixup, but it doesn't sound very comfortable.
Very interesting and useful command from interactive mode is "edit". It "pause" rebasing at the selected commit so user can make changes to it - edit files, edit commit message, I think also split this commit to more commits,...
As Alyst mentioned, in case of conflict, it should "pause" rebasing (as above with "edit") and let user fix the conflicts as usual. (Actually right now I don't remember how SmartGit behaves in case of conflict during rebase. Maybe it allows to fix the conflicts already?)
So basically how the whole interactive rebase works, and especially the ability to "edit" commit in history is probably most wanted feature for me :)
From my point of view interactive rebase provides these features I miss in SmartGit GUI: