<?php
$ch = curl_init('http://www.example.com');
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$page = curl_exec($ch);
curl_close($ch);
$fh = fopen('filename.html','w');
fwrite($fh,$page);
?>
Using curl give you a lot of control of behavior that you don't have with the other methods mentioned. Basically what CURL is intended for is anytime you want your script to act like a web browser. You can get and send cookies, you can submit post forms, etc.
For more information see [man]curl_setopt[/man]