What I've done here is to create a template called blogs (using page.php as an example).
<?php
/**
* @package WordPress
* @subpackage Default_Theme
*/
/*
Template Name: Blogs
*/
?>
<?php get_header(); ?>
<!--Main Content-->
<div class="mcon">
<div class="pgNav">
<?php
$current_site = get_current_site()->id;
$blog_list = get_blog_list( 0, 'all' );
$blogs=array();
foreach ($blog_list AS $blog)
{
$blogid = $blog['blog_id'];
if ($blogid != $current_site) {
$name = get_blog_details($blogid)->blogname;
$description = get_blog_option($blogid, 'blogdescription');
$url = get_blog_details($blogid)->siteurl;
$blogs[] = "$name, $description, $url";
}
}
sort($blogs);
echo '<h2>Blog List</h2>
';
foreach ($blogs as $blog)
{
list($name, $desc, $url) = split(",", $blog);
echo '<p><a href="'. $url .'">' . $name . '</a><br />
'.$desc.'</p>
';
}
?>
</div>
<!--End Content-->
<?php get_sidebar(); ?>
</div>
<?php get_footer(); ?>
Call this blogs.php and place under your template folder (wp-content/themes/[theme_name]). Create a new page, leave it blank and use the blogs template.
Example: http://smallnetbiz.com/blogs/