If you are not afraid to build your own where clause (which I would not always suggest). Then what you could do is to use if statements in your where.

    $collection = Mage::getModel('catalog/product')->getCollection();
    $collection->getSelect()
        ->where('if(entity_id = 16 AND type_id = "simple", TRUE, FALSE) = true')
        ->orWhere('if(entity_id = 17 AND type_id = "simple", TRUE, FALSE) = true')
        ->orWhere('if(entity_id = 18 AND type_id = "simple", TRUE, FALSE) = true');

One final note from me is that there looks like you could also use a mixture of the `having` function and `addExpressionAttributeToSelect`. This was taken from another stackexchange answer https://magento.stackexchange.com/questions/6305/how-to-add-dynamic-field-in-magento-collection

    $collection = Mage::getModel('catalog/product')->getCollection();
    $collection->addExpressionAttributeToSelect('first_where', 'if({{entity_id}} = 16 AND {{type_id}} = "simple", TRUE, FALSE)', array('entity_id', 'type_id'));
    $collection->addExpressionAttributeToSelect('second_where', 'if({{entity_id}} = 17 AND {{type_id}} = "simple", TRUE, FALSE)', array('entity_id', 'type_id'));
    $collection->addExpressionAttributeToSelect('third_where', 'if({{entity_id}} = 18 AND {{type_id}} = "simple", TRUE, FALSE)', array('entity_id', 'type_id'));
    $collection->getSelect()->having('first_where')->orHaving('second_where')->orHaving('third_where');

But using this I was getting the error `Unknown column 'first_where' in 'having clause''`