You can only use an exist UObject or Asset of same base type as a template.
Example:
UItem* NewItem = NewObject<UItem>( this, NAME_None, RF_NoFlags, BaseItemAssetPtr );
Whatever values are in the base Asset/Object, goes as default value for the newly created item instance. If your Ptr is to a Class / BP class, you must pass as a template its classPtr->GetDefaultObject() to the NewObject<> method.