jpea's answer here is spot on, but since you asked me for more help, Justin, here is a pared-down example of how I build my category links and then filter the entries. There are lots of other ways to do this, though.
In a template somewhere, generate your category links:
<ul>
{exp:channel:categories channel="blog" disable="category_fields" show_empty="no" style="linear"}
<li><a href="/blog/category/{category_url_title}">{category_name}</a></li>
{/exp:channel:categories}
</ul>
Then in your blog listing template where you display your posts (blog.group/index.html), set your channel:entries
loop up like this. You will need to have LowSeg2Cat installed and enabled.
<h1>Blog{if segment_2 == "category"} Category: {segment_3_category_name}{/if}</h1>
{exp:channel:entries
channel="blog"
disable="categories|category_fields|member_data|pagination"
dynamic="no"
{if segment_2 == "category"}
category="{segment_3_category_id}"
{/if}
}
<h2>{title}</h2>
{/exp:channel:entries}
Note the simple conditional in the channel:entries parameters that checks for the presence of a category filter. If you are not filtering by categories then it will just display an unfiltered list of all blog entries.