<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$postsperpage = 30;
$offset = ($paged-1) * $postsperpage
$pageposts = $wpdb->get_results("SELECT wposts.*
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE ... blah ...
LIMIT $offset, $posts_per_page ", OBJECT);
...
foreach ($posts as $post) :
setup_postdata($post); ?>
(loop stuff)
<?php endforeach; ?>
Yeah, this works very well!