Newsletter Signup Page/Block
There are two ways to do this in Drupal.

CiviCRM Profiles


Go to Administer » System Settings » Misc, and set Accept profile submissions from external sites to Yes.
Create a profile in CiviCRM with the "Add to Group" option set to add someone to the group in question.
Once the profile is created, select its more menu » HTML Form Snippet (see screenshot).
Paste the HTML snippet into a Drupal block.  Handle access to the block like any other Drupal block.


SPECIAL NOTE: This creates a bit of a security issue - when you enable the "Remote Profile Submissions", anyone who knows what your profiles are can add contacts to your system by recreating the form on a remote site.  If you choose this path, consider editing your web server to block access to profile URLs by IP address.

Webform CiviCRM integration

Alternatively, you can use Webform-CiviCRM integration to build webforms to handle this.  This is much more flexible, but can be trickier to get right, depending on your needs.  I'd probably try this first.

Bonus: WordPress edition


Create a profile in CiviCRM with the "Add to Group" option set to add someone to the group in question.
Use a shortcode to drop the profile into a page.  Use the Shortcode Widget if you want to drop it into a sidebar.