First of all, let's get rid of infinities: a function can tend to #\pm\infty# either at the extreme points of its domain or because of some vertical asymptote.
So, you should first of all check
#lim_{x \to x_0} f(x)#
for every point #x_0# at the boundary of the domain. For example, if the domain is #(-\infty,\infty)#, you should check
#lim_{x \to \pm\infty} f(x)#
If the domain is like #\mathbb{R}\setminus\{2\}# you should check
#lim_{x \to \pm\infty} f(x),\qquad lim_{x \to 2^\pm} f(x)#
and so on. If any of these limits is #-\infty#, the function has no finite lower bound.
Else, you can check the derivative: when you set #f'(x)=0#, you will find points of maximum of minimum. For every #x# which solves #f'(x)=0#, you should compute #f''(x)#. If #f''(x)>0#, the point is indeed a minumum.
Now, in the most general case, you have a collection of points #x_1,...,x_n# such that
#f'(x_i)=0,\qquad f''(x_i)>0# for every #i=1,.., n#
Which means that they are all local minima of your function. The lower bound of the function, i.e. the global minimum, will be the smallest image of those points: you just need to compare
#f(x_1), ..., f(x_n)#, and choose the smallest one.