BuddyPress is cool, but needs a lot of time to set up, extra plugins, etc. Also, it doesn't do everything you want out of the box. In fact, some things are a bit difficult (and in one case of my own, not possible as far as I can see).
Mingle is amazing. It doesn't have Groups built in (yet) but does everything else in standard WordPress pages. So you create a page, for example, in which the Activity river is displayed. That page can be any way you like it. Same for every other Mingle area. Don't want users to see a page, eg., the Log-in because you show that in a block? Just use the Hide Pages plugin so nobody sees it.
I'm very impressed with Mingle, and the power it provides to create a social network simply by installing it and creating a few blank pages for it to display things on.