One way to do it:
Get all child categories
$category_model = Mage::getModel('catalog/category')->load($currentCategoryId);
$all_child_categories = $category_model->getResource()->getAllChildren($_category);
Get all the category's products
$productCollection = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter($category);
Edit:
In order to get subcategory products follow these steps:
Go to this template file (here is where you can put all the code listed below):
catalog/product/list.phtml
Get the current category ID:
$currentCategory = Mage::registry('current_category');
$currentCategoryID = $currentCategory->getEntityId();
Load the current category model to get the category children:
$category_model = Mage::getModel('catalog/category')->load($currentCategoryID);
Get all the child category id's:
$all_child_categories = $category_model->getResource()->getAllChildren($category_model );
Loop through each child id and load the category and it's children:
foreach ($all_child_categories as $child_id):
$child_cat = Mage::getModel('catalog/category')->load($child_id);
$products = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter($child_cat);
endforeach;
Let us know if yo need further assistance