Index: django/views/generic/date_based.py
===================================================================
--- django/views/generic/date_based.py	(revision 6819)
+++ django/views/generic/date_based.py	(working copy)
@@ -10,7 +10,8 @@
 def archive_index(request, queryset, date_field, num_latest=15,
         template_name=None, template_loader=loader,
         extra_context=None, allow_empty=False, context_processors=None,
-        mimetype=None, allow_future=False, template_object_name='latest'):
+        mimetype=None, allow_future=False, template_object_name='latest',
+        date_list_period='year'):
     """
     Generic top-level archive of date-based objects.
 
@@ -25,7 +26,10 @@
     model = queryset.model
     if not allow_future:
         queryset = queryset.filter(**{'%s__lte' % date_field: datetime.datetime.now()})
-    date_list = queryset.dates(date_field, 'year')[::-1]
+    if date_list_period == 'month':
+        date_list = queryset.dates(date_field, 'month')[::-1]
+    else:
+        date_list = queryset.dates(date_field, 'year')[::-1]
     if not date_list and not allow_empty:
         raise Http404, "No %s available" % model._meta.verbose_name
 
Index: docs/generic_views.txt
===================================================================
--- docs/generic_views.txt	(revision 6819)
+++ docs/generic_views.txt	(working copy)
@@ -205,6 +205,10 @@
       Designates the name of the template variable to use in the template
       context. By default, this is ``'latest'``.
 
+    * **New in Django development version:** ``date_list_period``: Specifies
+      what date period is placed in ``date_list``. Acceptable values are 
+      ``'year'`` and ``'month'``. By default, this is ``'year'``. 
+
 **Template name:**
 
 If ``template_name`` isn't specified, this view will use the template
