Buenas, lo he resuelto de la siguiente manera, a lo mejor a alguien le puede servir, aunque seguramente haya una manera más eficaz. 
 
Controller 
Código:
     public function indexAction($page)
    {
        $latestBlogs = $this->getDoctrine()
                             ->getEntityManager()
                             ->getRepository('BloggerBlogBundle:Blog')
                             ->getLatestBlogs($page, 5 );
        return $this->render('BloggerBlogBundle:Page:index.html.twig', array(
                'blogs' => $latestBlogs
            ));
    }
  Repository 
Código:
     public function getLatestBlogs($page = 1, $limitPerPage = 5)
    {
        $dql = $this->getEntityManager()->createQuery('SELECT b, c FROM BloggerBlogBundle:Blog b LEFT JOIN b.comments c');
        //...
        $count = Paginate::getTotalQueryResults($dql); // Step 1
        
        if ( $page == 1 ) {
            $offset = 0;
        }
        if ( $page == 2 ) {
            $offset = 5;
        }        
              
        $paginateQuery = Paginate::getPaginateQuery($dql, $offset, $limitPerPage);
     
        return $paginateQuery->getResult();
    }
  Routing 
Código:
 BloggerBlogBundle_homepage:
    pattern:  /{page}
    defaults: { _controller: BloggerBlogBundle:Page:index, page:1 }
    requirements:
        _method:  GET
  Template 
Código:
     <div>
        <a href="{{ path('BloggerBlogBundle_homepage', { 'page': 1 }) }}">1</a> || <a href="{{ path('BloggerBlogBundle_homepage', { 'page': 2 }) }}">2</a>
    </div>
  He puesto el número de páginas a mano (1 y 2, con 5 resultados por página) supongo que con el total de resultados de la consulta, divido por el número de resultados por página a mostrar, se puede obtener la paginación de manera genérica 
Saludos y gracias de nuevo masterpuppet