Difference between 能 and verb + 得了(de liao3)
I think the difference is mostly in formality. For the first 2 examples you've given, both would be acceptable grammatically, but 能 definitely sounds more formal.

However, I think there are examples where they can't completely be used interchangeably. 

我吃不了了 can be used to indicate that one can't keep eating (because one is full/doesn't like the food). But to indicate the same with 能 you probably need to say, 我不能继续吃了。

This might fall in a general category of idioms where you can't use 能 instead of a construction involving 得. For example, 我看不起他 really can't be replaced easily with 能