Если в вашей модели Post нет кэша счетчика (например, "comments_count"), это будет медленно. Но здесь все равно:
Post.find(:all, :include => :comments).select { |post| post.comments.empty? }
Я бы предложил использовать решение для кэширования счетчиков (но для этого необходимо выполнить рефакторинг схемы и обновить счетчики во время миграции):
Post.all(:conditions => { :comments_count => 0 })
Последний намного эффективнее, особенно в Rails 3 (причина ленивых запросов).