Filter entries by multiple categories
I had to get this working just the other day. Here is what I did:

{# Get the relevant entries #}
{% set categoryQuery = craft.request.getParam('category') %}
{% set categories = craft.categories.group('sectionName').slug(categoryQuery) %}

{# Set the search parameters #} 
{% set searchParams = {
    relatedTo: categories,
    section: 'sectionName'
} %}

{# Get the relevant entries #}
{% set relevantEntries = craft.entries(searchParams) %}


In the form I have:

&lt;form action=""&gt;

{% for category in craft.categories.group('services') %}
    &lt;input id="{{category.slug}}" type="checkbox" name="category[]"  value="{{ category.slug }}" {{ category.slug in categoryQuery or categoryQuery == null  ? 'checked'}}&gt;
    &lt;label for="{{ category.slug }}" &gt;{{ category.title }}&lt;/label&gt;
{% endfor %}

&lt;/form&gt;


This seems to work for me.