How to build dynamic pages?

Using WP’s templates you can create a page with static content already in it, and just grab the dynamic parts using WP_Query class.

<h1>Static Header</h1>
<div id="dynamic_content1">
<?php 
$recentPosts = new WP_Query();
$recentPosts->query('showposts=3');
while ($recentPosts->have_posts()) : $recentPosts->the_post();
    the_content();  // Put Loop Stuff Here
endwhile;
?>
</div>
<div id="other_dynamic_content">
    <?php 
    $anotherQuery = new WP_Query();
     $anotherQuery->query('someotherquery=1');
     while ($anotherQuery->have_posts()) : $anotherQuery->the_post();
        the_content();  // Put Loop Stuff Here
     endwhile; ?>
</div>

As you can see from the example you can load multiple dynamic components into a single page.

WordPress’s template schema works as follows {post-type}-{slug/id}.php

So a page with a title of about would be page-about.php. WordPress will automatically look for that page first when you go to /about/ if it’s not in your them folder it falls back to the page.php file, if it doesn’t exist it falls back to index.php (which must exist for your theme to work).

Also for posts you can follow the same schema single-{post-type}.php etc. Check out the WP template Hierarchy and WP_Query class in the codex for more info, such as the query paramaters.