you need to do an OUTER JOIN to the comments table. The inner join you are using will return a null vulue if there are no comments. TRY
SELECT n.id as post_id, COUNT(c.postid) as comments_count, n.poster, n.title, n.content, n.type, n.timestamp, t.id, t.type as type_name, u.username FROM news n, news_types t, users u OUTER JOIN news_comments c ON c.postid = n.id WHERE n.type = t.id AND n.poster = u.id GROUP BY n.id ORDER BY n.id DESC LIMIT 5;