I agree with @CSharper only to request what you absolutely need.
If you need to make it as lazy as possible after this optimization, use ICriteria.Future<T>()instead ICriteria.List<T>():
public IEnumerable<UserReadNews> GetLatestUserReadNews(IEnumerable<string> userIds)
{
IQuery query = Session.CreateQuery("from UserReadNews as j where j.FacebookUser_id in (:userIds)");
query.SetParameterList("userIds", userIds );
return query.Future<UserReadNews>();
}
Future IEnumerable , . , .