The Subscribers-Only plugin (for WordPress 2.0 and above) lets you mark posts for subscribers-only (who would've guessed that?). No template modifications are required.
You define which roles are allowed to read subscriber-only posts.
In order to read posts marked for subscribers-only a person much register at your site and login.
When a post is marked as "subscriber-only" and your home page displays excerpts then the excerpt will be shown along with an optional "Subscribers-only" banner that you define. When a reader clicks on the link to go to the individual post page they must be logged in to read the post. If a person is not logged in then they will be presented a link to login or register.
If your home page doesn't display excerpts then no post body content will be displayed for a post marked as "subscribers-only". Instead the reader will see a link to login or register.
If a person is already logged in, but their role isn't allowed to read a subscribers-only article then they will be presented with a "notice" message (if you define one) that informs them of their current membership level along with additional text that explains that they cannot read the post. A link can be provided to either register or login -- assuming that they might want to register another account or login with another already-existing account.
Custom roles are not required to use this plugin, however custom roles are supported if you have any defined. If you want to establish custom roles in your WordPress installation then see Owen Winkler's Role Manager plugin: http://redalt.com/wiki/Role+Manager
Read more and get a copy here.